[R] problem with as.POSIXct and daylight savings time

Denis Chabot chabotd at globetrotter.net
Sun Jul 19 18:36:12 CEST 2009


Thank you very much Duncan.

I'll follow your suggestion.

Why do I want to do what the designer did not think anyone would want  
to do? I have data acquisition equipment taking measurements every 15  
min or so for days at a time, and I need to compile all such  
experiments in a master data set. The data acquisition equipment  
automatically switches to DST in spring and back to ST in autumn,  
which I did not disable because it is easier to work with while we are  
running the experiments.

I could use chron to ignore time zones and daylight savings time, but  
this would not be of much help as whether or not I use as.POSIXct or  
chron, there is one day of the year that has 25 h and I need to deal  
with that 25th hour or I'll lose one hour of data!

Denis
Le 09-07-19 à 11:45, Duncan Murdoch a écrit :

> On 19/07/2009 11:23 AM, Denis Chabot wrote:
>> [was "	[R] end of daylight saving time"]
>> Hi,
>> I got no reply with the previous subject line, probably a bad  
>> choice  of subject on my part, so here it is again.
>> I read from the help on DateTimeClasses and various posts on this  
>> list  that, quite logically, one needs to specify if DST is active  
>> or not  when time is between 1 and 2 AM on the first Sunday in  
>> November (for  North America in recent years).
>> This I can do for on date at a time:
>> a <- as.POSIXct("2008-11-02 01:30:00", tz="EST5EDT")  # to get   
>> automatic use of DST
>> b <- as.POSIXct("2008-11-02 01:30:00", tz="EST")  # to tell T this  
>> is  the second occurrence of 1:30 that day, in ST
>> difftime(b,a)
>> Time difference of 1 hours
>> But why can't I do the following, which appears to be a typical R  
>> way  of doing things, to handle several date-times at once?
>> c <- rep("2008-11-02 01:30:00", 2)
>> tzone = c("EST5EDT", "EST")
>> as.POSIXct(c, tz=tzone)
>> Erreur dans strptime(xx, f <- "%Y-%m-%d %H:%M:%OS", tz = tz) :
>>  valeur 'tz' incorrecte
>> ???
>
> Objects of the POSIXlt and POSIXct classes don't support multiple  
> time zones, so if you specified several time zones on input, how  
> would the conversion functions decide which one to use for output?   
> You'll need to write your own wrapper function to make this  
> decision, and do the conversions separately for each input timezone.
>
> Why don't those classes support a separate time zone for each entry?  
> Presumably because their designer never thought anyone would want to  
> do that.
>
> Duncan Murdoch
>
>
>> Thanks,
>> Denis Chabot
>> sessionInfo()
>> R version 2.9.1 Patched (2009-07-09 r48929)
>> x86_64-apple-darwin9.7.0
>> locale:
>> fr_CA.UTF-8/fr_CA.UTF-8/C/C/fr_CA.UTF-8/fr_CA.UTF-8
>> attached base packages:
>> [1] stats     graphics  grDevices utils     datasets  methods   base
>> loaded via a namespace (and not attached):
>> [1] tools_2.9.1
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>




More information about the R-help mailing list