[R] Extent of time zone vulerability for POSIX date and time classes
Tim Bergsma
timb at metrumrg.com
Thu Apr 5 18:15:09 CEST 2007
Gabor,
thanks for the feedback. I like the idea of coercing the system time
zone, and sticking with strptime/strftime. The balance would probably
tip in favor of chron, however, if I could get the format correct.
Apparently the default is two-digit year:
library(chron)
chron(1)
[1] 01/02/70
chron(1,format="m/d/y")
[1] 01/02/70
But I need four digit year, so I try:
chron(1,format="m/d/yyyy")
[1] Jan/02/1970
Now, month has switched to character! I don't know of a format
convention that gets it back to numeric (although conventions are
documented for forcing to character). Comment?
Regards,
Tim.
Gabor Grothendieck wrote:
> If you use
>
> Sys.putenv(TZ = "GMT")
>
> at the beginning of your session then local time zone and GMT time
> zone will be the same so you should not have a problem. This was
> not possible, at least on Windows, at the time the R News article
> was written.
>
>
>
>
>
> On 4/5/07, Tim Bergsma <timb at metrumrg.com> wrote:
>> Hi.
>>
>> I frequently convert date and time data to and from character
>> representations. I'm frustrated with chron, because 'seconds' are
>> required to create a time object (my input data never has seconds).
>
> You could use paste:
>
> times(paste("12:30", 0, sep = ":"))
>
> and make it into a function if you use it a lot.
>
>> More importantly, I cannot make chron print the format 12/30/2006 (which
>> my output data requires).
>
> That is the default output format so you don't have to specify anything.
> Its
> only with POSIX that its not the default. For example:
>
>> library(chron)
>> x <- chron("12/30/2006")
>> x
> [1] 12/30/06
>
>>
>> I really like the format flexibility of strftime() and strptime(), but
>> of course am paranoid about timezone issues. After reading the standard
>> reference several times
>> (http://cran.r-project.org/doc/Rnews/Rnews_2004-1.pdf), I am tempted to
>> conclude that if I never specify timezones, and never use Sys.time(),
>> the vulnerabilities do not pertain.
>
> That won't protect you but this would let you use POSIX safely:
>
> http://www.mail-archive.com/r-help@stat.math.ethz.ch/msg83508.html
>
>>
>> To the point: if I'm merely converting to and from character data that
>> does not represent time zones, is there still a time zone vulnerability
>> with strftime() and strptime()?
>>
>> Thanks in advance,
>>
>> Tim Bergsma, PhD
>> Metrum Research Group, LLC
>>
>>
>> #example
>> strftime(
>> strptime(
>> "30-Dec-06 23:30",
>> format="%d-%b-%y %H:%M"
>> ),
>> format="%m/%d/%Y %H:%M"
>> )
>> [1] "12/30/2006 23:30"
>>
>> ______________________________________________
>> R-help at stat.math.ethz.ch 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