Discussion:
time problems with daylight saving
Sarah Reichelt
2004-11-08 04:04:24 UTC
Permalink
Hi All,

I'm back onto my pet bug to do with time zones & daylight saving. In
Rev 2.5 the original bug is fixed so that convert does not add an hour
with each conversion if you are in a positive time zone with daylight
saving using Mac OS X.

However, I am just deploying a major app in daylight savings affected
areas and having some problems because "the seconds" are not behaving
the way I expected.

For example:
set time zone to Brisbane (+1000), no daylight saving, get the seconds
switch to Melbourne (+1000), with daylight saving, get the seconds
allowing for the time needed to switch time zones, these both give the
same answer!

If I use convert to change them to a readable date & time they give
times differing by 1 hour, which is correct.

At this point I get so confused that I can't work out what is right &
what is wrong, but basically, seconds is not allowing for daylight
savings but is the same value at the same actual moment, regardless of
the daylight savings settings. Internally Rev handles this so that
converting the seconds accommodates to daylight saving times.

As far as I am concerned, the major impact is that events occur in
remote machines (both with & without daylight saving) which get logged
with a time stamp in seconds format. These reports get emailed back to
base where there is no daylight saving and the times from machines with
daylight saving are then translated incorrectly so their reports are an
hour out.

I am at a loss as to what to do. I guess if I can detect daylight
savings, I could add 3600 to the time stamps of any reports. But how
can I detect daylight savings? Rev must be able to do this, but I can't
find a way. Is there maybe an AppleScript way?

Any words of encouragement, advice or help would be greatly appreciated.
Sarah
Troy Rollins
2004-11-08 04:18:48 UTC
Permalink
Post by Sarah Reichelt
I am at a loss as to what to do. I guess if I can detect daylight
savings, I could add 3600 to the time stamps of any reports. But how
can I detect daylight savings? Rev must be able to do this, but I
can't find a way. Is there maybe an AppleScript way?
I guess I'm thinking that the behavior is correct, though not desirable
in your case. The seconds should be independent of such things as
DST... but that isn't helping you.

What about -
convert the date && the time to seconds

Doesn't that give you what you need?

Alternately, would it be possible to request a uniform time stamp from
the server?

--
Troy
RPSystems, Ltd.
http://www.rpsystems.net
Sarah Reichelt
2004-11-09 03:36:09 UTC
Permalink
In case anyone else is struggling with a similar problem, here is my
workaround. I have written a routine which uses the AppleScript "time
to GMT" to get the time difference, then I use "the internet time" to
get the current time zone. The difference between these two is the
daylight savings period. I convert this to seconds and when emailing
time-stamped reports to another time zone, I apply the difference. I
haven't finished all my tests but so far it's looking good.

Here is my function for getting the number of seconds of daylight
savings time. Since this only seems to be an OS X problem, it doesn't
matter that it relies on AppleScript.

function DSTseconds
-- get current time zone & convert to decimal hours
-- e.g. +0930 becomes 9.5
put the internet date into tNow
put last word of tNow into tZone
replace "+" with empty in tZone
put char -2 to -1 of tZone into tMins
delete char -2 to -1 of tZone
add tMins / 60 to tZone
-- use AppleScript to get the current number of seconds between
-- this computer's time & GMT, and convert to hours
put "tell application " & quote & "Finder" & quote & "" & cr \
& "return time to GMT" & cr & "end tell" into tScript
do tScript as AppleScript
put the result / 3600 into tDiff
put (tDiff - tZone) * 3600 into tDST
return tDST
end DSTseconds

Cheers,
Sarah
Post by Sarah Reichelt
Hi All,
I'm back onto my pet bug to do with time zones & daylight saving. In
Rev 2.5 the original bug is fixed so that convert does not add an hour
with each conversion if you are in a positive time zone with daylight
saving using Mac OS X.
However, I am just deploying a major app in daylight savings affected
areas and having some problems because "the seconds" are not behaving
the way I expected.
set time zone to Brisbane (+1000), no daylight saving, get the seconds
switch to Melbourne (+1000), with daylight saving, get the seconds
allowing for the time needed to switch time zones, these both give the
same answer!
If I use convert to change them to a readable date & time they give
times differing by 1 hour, which is correct.
At this point I get so confused that I can't work out what is right &
what is wrong, but basically, seconds is not allowing for daylight
savings but is the same value at the same actual moment, regardless of
the daylight savings settings. Internally Rev handles this so that
converting the seconds accommodates to daylight saving times.
As far as I am concerned, the major impact is that events occur in
remote machines (both with & without daylight saving) which get logged
with a time stamp in seconds format. These reports get emailed back to
base where there is no daylight saving and the times from machines
with daylight saving are then translated incorrectly so their reports
are an hour out.
I am at a loss as to what to do. I guess if I can detect daylight
savings, I could add 3600 to the time stamps of any reports. But how
can I detect daylight savings? Rev must be able to do this, but I
can't find a way. Is there maybe an AppleScript way?
Any words of encouragement, advice or help would be greatly
appreciated.
Sarah
_______________________________________________
use-revolution mailing list
http://lists.runrev.com/mailman/listinfo/use-revolution
Continue reading on narkive:
Loading...