time problems with daylight saving
sarahr at genesearch.com.au
Mon Nov 8 21:36:09 CST 2004
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.
-- 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
On 8 Nov 2004, at 2:07 pm, Sarah Reichelt wrote:
> 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
> use-revolution mailing list
> use-revolution at lists.runrev.com
More information about the use-livecode