[Rd] Sys.timzone() returns NA - problem caused by as.POSIXlt? (PR#8003)

ripley@stats.ox.ac.uk ripley at stats.ox.ac.uk
Mon Jul 11 08:59:06 CEST 2005


This is not a bug in R: the documentation does say the result is 
OS-specific.

`GMT' is a not a proper timezone on Windows, so NA is a valid answer.
(Windows seems to use GMT to refer to the timezone of the UK, e.g.

> Sys.time()
[1] "2005-07-11 07:49:56 GMT Daylight Time"
> Sys.timezone()
[1] "GMT Daylight Time"

although I am in British Summer Time not GMT.)

I'll add yet another workaround for R-patched.


On Thu, 7 Jul 2005 mkeller at fam.tuwien.ac.at wrote:

> Full_Name: Martin Keller-Ressel
> Version: 2.1.1
> OS: Windows 2000
> Submission from: (NULL) (128.130.51.88)
>
>
> Sys.timezone() returns NA although the environment variable TZ is set to GMT
> and
> Sys.time() returns the correct time and date including the right timezone.
> The problem is probably due to as.POSIXlt() which is used by Sys.timezone().
>
> The problem has been confirmed by Uwe Ligges for R 2.1.1 on Windows NT 4.0.
> See below for a R session outlining the problem:
>
>
>> Sys.getenv("TZ")
>   TZ
> "GMT"
>> Sys.time()
> [1] "2005-07-07 10:28:11 GMT"
>> Sys.timezone()
> [1] NA
>
>> Sys.timezone
> function ()
> {
>    z <- as.POSIXlt(Sys.time())
>    attr(z, "tzone")[2 + z$isdst]
> }
> <environment: namespace:base>
>
>> z <- as.POSIXlt(Sys.time())
>> attributes(z)
> $names
> [1] "sec"   "min"   "hour"  "mday"  "mon"   "year"  "wday"  "yday"  "isdst"
>
> $class
> [1] "POSIXt"  "POSIXlt"
>
> $tzone
> [1] "GMT"
>
>> attr(z,"tzone")
> [1] "GMT"
>> z$isdst
> [1] 0
>> attr(z,"tzone")[2]
> [1] NA

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