POSIX and summer savings time redux
When I tried Professor Ripley's example (below), the "tz" argument failed to adjust clock time from UTC. > (z <- ISOdatetime(1970,1,1,0,0,0, tz="UTC")+1165398135729/1000) [1] "2006-12-06 09:42:15 UTC" > format(z, "%Y-%m-%d %H:%M:%OS3",tz = "CET") [1] "2006-12-06 09:42:15.729" # expected CET (Central European Time) clock time is UTC + 1 hour time zone adjustment Am I running into platform dependencies? (my platform) platform i386-pc-mingw32 arch i386 os mingw32 system i386, mingw32 status major 2 minor 4.0 year 2006 month 10 day 03 svn rev 39566 language R version.string R version 2.4.0 (2006-10-03) Thank you most sincerely, Derek Eder
Prof Brian Ripley wrote:
On Wed, 6 Dec 2006, Derek Eder wrote:
I have a time stamp in UTC (GMT) time:
format(ISOdatetime(1970,1,1,0,0,0)+1165398135729/1000,"%Y-%m-%d
%H:%M:%OS3") "2006-12-06 09:42:18.823" (note millisecond accuracy, but not relevant to question here)
But it is the wrong answer, and not what my system gives.
Now, this time stamp actually "happened" at local (Swedish) time one hour later (10:42).
So you need to tell R that it was in UTC, which is what the 'tz' argument is for:
(z <- ISOdatetime(1970,1,1,0,0,0, tz="UTC")+1165398135729/1000)
[1] "2006-12-06 09:42:15 UTC"
format(z, "%Y-%m-%d %H:%M:%OS3", tz="CET")
[1] "2006-12-06 10:42:15.729"
Regarding summer/winter adjustments in time ("spring forward, fall
back"): Is there a way of automatically recovering the local time
adjustments for a given date? E.g., a date/time in springtime = GMT +2
, else GMT +1
Is the above not enough? You can unpick it if you want to get the shift.
Derek N. Eder Gothenburg University VINKLA - Vigilance and Neurocognition laboratory SU/Sahlgrenska Utvecklingslab 1, Med Gr?na str?ket 8 SE 413 45 G?teborg (Gothenburg) Sverige (Sweden) +46 (031)* 342 8261 (28261 inom Sahlgrenska) +46 0704 915 714 (mobile) +46 (031) 25 97 07 (home) * omit the 0 when calling from outside Sweden