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

From: Peter Dalgaard <p.dalgaard_at_biostat.ku.dk>
Date: Fri 01 Sep 2006 - 10:08:38 GMT

erich.neuwirth@univie.ac.at writes:

> 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"

Or,

> as.POSIXct(Sys.Date()) - as.POSIXlt(Sys.Date())
Time difference of 1 hours
> as.POSIXct(Sys.time()) - as.POSIXlt(Sys.time())
Time difference of -0.0003409386 secs

Whereas

> Sys.putenv("TZ"="GMT")
> as.POSIXct(Sys.Date()) - as.POSIXlt(Sys.Date())
Time difference of 0 secs

and

> Sys.putenv("TZ"="EST")
> as.POSIXct(Sys.Date()) - as.POSIXlt(Sys.Date())
Time difference of -5 hours

So the difference is that as.POSIXct works in GMT whereas as.POSIXlt works in the local timezone w/o DST corrections, the point of the latter likely being that

> as.POSIXlt(as.Date("2006-7-1"))-as.POSIXlt(as.Date("2006-1-1"))
Time difference of 181 days

comes out as an integer number of days.

BTW, the habit of format.POSIXlt dropping off the time when it is exactly 01:00 in CEST (i.e. would have been midnight, save for Daylight Savings Time) is a bit confusing too...

I'm not sure any of this is actual bugs (Brian will tell us soon enough), but it does appear at least to be underdocumented.

-- 
   O__  ---- Peter Dalgaard             ุster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk)                  FAX: (+45) 35327907

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Fri Sep 01 23:52:13 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Wed 06 Sep 2006 - 11:39:09 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.