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

spencerg spencer.graves at prodsyse.com
Sun Jul 19 18:42:56 CEST 2009


  Have you considered the "timeDate" package? 

      Spencer

Denis Chabot wrote:
> 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.
>>
>
> ______________________________________________
> 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