[Rd] Date conversion with as.POSIXct and as.POSIXlt (PR#9196)

Prof Brian Ripley ripley at stats.ox.ac.uk
Fri Sep 1 12:21:28 CEST 2006


You misunderstand the role of timezones.

as.POSIXct(Sys.Date())

is in UTC, as documented.

as.POSIXlt(Sys.Date())

does not have a timezone (POSIXlt objects do not need one).

as.POSIXct(as.POSIXlt(Sys.Date()))

means

as.POSIXct(as.POSIXlt(Sys.Date()), tz="")

which is asking to interpret this in the local timezone.

I've expanded the documentation, but I see no sign you had studied it so 
that it unlikely to help you.

On Fri, 1 Sep 2006, erich.neuwirth at univie.ac.at wrote:

> Full_Name: Erich Neuwirth
> Version: 2.3.1
> OS: Windows XP, Linux
> Submission from: (NULL) (131.130.135.167)
> 
> 
> Converting Sys.Date() to a POSIX compliant time type in different ways 
> produces inconsistent results:
> > Sys.date()
> [1] "2006-09-01"
> > as.POSIXct(Sys.Date())
> [1] "2006-09-01 02:00:00 CEST"
> > as.POSIXlt(Sys.Date())
> [1] "2006-09-01"
> > as.POSIXct(as.POSIXlt(Sys.Date()))
> [1] "2006-09-01 01:00:00 CEST"
> 
> Applying as.POSIXct directly or first applying as.POSIXlt and then
> applying as.POSIXct produces different results.
> 
> This happens on Linux with timezone "CEST"
> > Sys.time()
> [1] "2006-09-01 11:03:36 CEST"
> and on Windows with timezone "W. Europe Daylight Time"
> > Sys.time()
> [1] "2006-09-01 11:11:15 W. Europe Daylight Time"
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
> 

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595




More information about the R-devel mailing list