Hm, I do not follow this exactly. Running expr `date -d "$(sudo hwclock)" +%s` - `date +%s` for me gives -28800, the same as both the time zone method and your previous method. What are the outputs for you when you just run hwclock, and when you run date? Although hwclock doesn't know whether it is in local or utc, you can tell by comparing to system time, and that really should be all that matters.... As I noted, just relying on time zone data will not work if your hardware clock is already in local time.
Hm, I do not follow this exactly. Running expr `date -d "$(sudo hwclock)" +%s` - `date +%s` for me gives -28800, the same as both the time zone method and your previous method. What are the outputs for you when you just run hwclock, and when you run date? Although hwclock doesn't know whether it is in local or utc, you can tell by comparing to system time, and that really should be all that matters.... As I noted, just relying on time zone data will not work if your hardware clock is already in local time.
David