[R] order list of date (bug?)

Jeff Newmiller jdnewmil at dcn.davis.ca.us
Thu Jan 26 21:30:19 CET 2017


The Etc timezones are nice and simple, but I am grateful for the other ones since they help make handling local time conventions used by other people tolerable. 

In the TL;DR department,  Local Standard Time is accessible using Olson "Etc/GMT.*" time zone strings,  but that is not the same thing as "solar" time, for which noon occurs when the sun is highest in the sky. As the earth follows an elliptical orbit it speeds up and slows down throughout the year so solar noon shifts back and forth relative to local standard time. 
-- 
Sent from my phone. Please excuse my brevity.

On January 26, 2017 11:22:47 AM PST, William Dunlap via R-help <r-help at r-project.org> wrote:
>The R bug I mentioned was not that
>   as.POSIXlt("2016-03-27 02:30", format="%Y-%m-%d %H:%M", tz="CET")
>returned an NA.  That seems reasonable since there was no such time.
>
>The bug is that the POSIXlt object prints in an odd format (leaving
>off the time zone/daylight/standard time string) instead of printing
>an NA.  This made it hard for you to see the problem.
>
>Using tz="GMT" or "UTC" will give 'solar' time England.
>tz="Etc/GMT-1" will give 'solar' time in central Europe.
>
>Bill Dunlap
>TIBCO Software
>wdunlap tibco.com
>
>
>On Thu, Jan 26, 2017 at 10:46 AM, rob vech <rob.vech87 at gmail.com>
>wrote:
>> Hi William,
>> asking to the r-devel list I resolved the problem! It depends from
>the
>> timezone (tz param) that I didn't specified and so R automatically
>uses my
>> local time and considers also the daylight saving time (that comes at
>2:00
>> at my position).
>> As my dates are in solar time, I specified the time zone as "GMT" and
>it
>> works!
>> Here a simple example:
>>
>> df = data.frame(DateTime = c(
>>   '2016-12-21 10:34:54',
>>   '2016-12-21 11:04:54',
>>   '2016-12-21 11:34:54',
>>   '2016-03-27 02:05:50',
>>   '2016-03-27 02:35:50',
>>   '2016-12-21 12:04:54',
>>   '2016-12-21 12:34:54'
>> ))
>>
>>
>> df$DateTime = as.POSIXlt(strptime(df$DateTime,
>>                                   format='%Y-%m-%d %H:%M:%S',
>>                                   tz='GMT'))
>>
>> ord = order(as.numeric(strptime(df$DateTime, format='%Y-%m-%d
>%H:%M:%S',
>> tz='GMT')))
>>
>> df.ord = df[ord,1]
>> df.ord
>>
>
>______________________________________________
>R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>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