POSIX problem in New Zealand (PR#2570)
We can't reproduce the `bug' on an XP machine in the NZ timezone! Indeed, there is no bug in the output you present, just different time zones. I did find a bug in the code which gave me different answers from you, and fixed it in R-devel. Please take a look at the current R-devel snapshot and see if it gives you what you want.
On Fri, 21 Feb 2003, Arni Magnusson wrote:
On Fri, 21 Feb 2003 ripley@stats.ox.ac.uk wrote:
What exactly is the problem? Those appear to be the same time, in different time zones. Is the problem that you are in the N Hemisphere (your email address is) trying to use S Hemisphere times on an OS that does not support pre-1970 times?
Currently I'm in New Zealand working on a Windows XP machine that has never left the country. I have not encountered problems with as.POSIXct when working in other time zones.
You seem to be confusing the time and how it is printed. What do you want to do with these times?
I'm dealing with two kinds of problems: (1) what I see as a bug in as.POSIXct, and (2) my own confusion with time zones. One problem at a time: (1) as.POSIXct I would like the following to return similar times, except for the year, but they don't:
> x <- as.POSIXct("1969-12-24")
> y <- as.POSIXct("1970-12-24")
> x
[1] "1969-12-23 23:00:00 New Zealand Standard Time"
> y
[1] "1970-12-24 New Zealand Standard Time"
> z <- seq(x, by="year", length=2)[2] > difftime(y, z)
Time difference of 1 hours
From reading 'library/base/html/DateTimeClasses.html' I understand that R
queries Windows XP for the period 1970-2037 and uses its own C code outside this range. To me it looks like the bug might be in the C code. I think the problem goes deeper than print.POSIXct, because coercions are independent of the print method as far as I understand:
> x <- as.POSIXlt("1969-12-24")
> y <- as.POSIXlt(as.POSIXct(x))
> x
[1] "1969-12-24"
> y
[1] "1969-12-23 23:00:00 New Zealand Standard Time"
> x==y
[1] FALSE (2) Time zone confusion This is a question of taste and implementation, but I would like POSIXct objects in data frames and plots to display the times I entered originally, regardless of where in the world I'm working at the moment. (3) My solution I've defined the environment variable tz=GMT in my R shortcut and I'll try to remember doing so on other machines I work on. This way I avoid both the as.POSIXct/New Zealand bug and the time zone confusion. I still think the Kiwis would appreciate the bug being fixed :)
On Fri, 21 Feb 2003 arnima@u.washington.edu wrote:
Full_Name: Arni Magnusson Version: 1.6.2 OS: Windows XP Submission from: (NULL) (210.48.49.68)
Brian D. Ripley, ripley@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