From arnima@u.washington.edu  Sat Feb 22 06:13:11 2003
From: arnima@u.washington.edu (Arni Magnusson)
Date: Sat Feb 22 06:13:11 2003
Subject: [Rd] POSIX problem in New Zealand (PR#2570)
In-Reply-To: <Pine.LNX.4.44.0302210708350.19969-100000@gannet.stats>
Message-ID: <Pine.A41.4.44.0302211929050.95120-100000@dante24.u.washington.edu>


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)



[Rd] POSIX problem in New Zealand (PR#2570)
Arni Magnusson