Doing away with “unknown timezone” warnings

Timezone stuff can really drive you NUTS

– at least if you’re sitting in front of a German Windows-Box 😉

This is what I used to do to set my tz:


options(tz="Europe/Berlin")

And I always wondered why R would throw “unknown timezone” warnings:


> t <- "2011-11-08 09:42:00"
 > as.POSIXct(t, tz=getOption("tz"))
 [1] "2011-11-08 09:42:00 CET"
 Warning messages:
 1: In strptime(xx, f <- "%Y-%m-%d %H:%M:%OS", tz = tz) :
 unknown timezone 'MET-1MST'
 2: In as.POSIXct.POSIXlt(x) : unknown timezone 'MET-1MST'
 3: In strptime(x, f, tz = tz) : unknown timezone 'MET-1MST'
 4: In as.POSIXct.POSIXlt(as.POSIXlt(x, tz, ...), tz, ...) :
 unknown timezone 'MET-1MST'
 5: In as.POSIXlt.POSIXct(x, tz) : unknown timezone 'MET-1MST'

Someday I found out that setting tz via `options()` was not enough as the environment variable `TZ` is not affected and hence all the the trouble:


> Sys.getenv("TZ")
 [1] "MET-1MST"

Changing this should do away with the nasty warnings:


> Sys.setenv(TZ="Europe/Berlin")
 > Sys.getenv("TZ")
 [1] "Europe/Berlin"
 > as.POSIXct(t, tz=getOption("tz"))
 [1] "2011-11-08 09:42:00 CET"

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s