Hello! I've been trying to get this right for quite a while now and fear there is an easy solution I just don't see. I did not have this problem in Linux, and I searched r-help and Google but did not find a solution, but of course I am grateful for and resources I might not have found our not understood yet.
I try to parse a time stamp with time zone. I essentially just want to parse the time stamp "1995-05-25T15:30:00+10:00" and output it exactly like it is, using the POSIX classes (or is that impossible?). Please find the script and output/comments below. Regards, Daniel > sessionInfo() R version 2.12.1 (2010-12-16) Platform: x86_64-pc-mingw32/x64 (64-bit) locale: [1] LC_COLLATE=German_Germany.1252 LC_CTYPE=German_Germany.1252 [3] LC_MONETARY=German_Germany.1252 LC_NUMERIC=C [5] LC_TIME=German_Germany.1252 attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] rj_0.5.2-1 loaded via a namespace (and not attached): [1] rJava_0.8-8 tools_2.12.1 > > t1 <- strptime("1995-05-25T15:30:00+10:00", format = "%Y-%m-%dT%H:%M:%OS") > t2 <- strptime("1995-05-25T15:30:00+10:00", format = "%Y-%m-%dT%H:%M:%OS%z") > > strftime(t1, format = "%Y-%m-%dT%H:%M:%OS") [1] "1995-05-25T15:30:00" > strftime(t1, format = "%Y-%m-%dT%H:%M:%OS%z") [1] "1995-05-25T15:30:00Mitteleuropäische Sommerzeit" > # Ends in "Mitteleuropäische Sommerzeit", not in +10:00, so time zone is > ignored! > # Also no difference beetween %z and %z ! > strftime(t1, format = "%Y-%m-%dT%H:%M:%OS%Z") [1] "1995-05-25T15:30:00Mitteleuropäische Sommerzeit" > # All this does NOT remove the "Mitteleuropäische Zeit" from the strftime > output!! > > # Can locale solve the problem? > Sys.getlocale(category = "LC_TIME") [1] "German_Germany.1252" > Sys.setlocale("LC_TIME", "English") [1] "English_United States.1252" > > strftime(t1, format = "%Y-%m-%dT%H:%M:%OS%z") [1] "1995-05-25T15:30:00Mitteleuropäische Sommerzeit" > # [1] "1995-05-25T15:30:00Mitteleuropäische Sommerzeit" -- No change. > > # does t1 actually have time zone? > attributes(t1) $names [1] "sec" "min" "hour" "mday" "mon" "year" "wday" "yday" "isdst" $class [1] "POSIXlt" "POSIXt" > > format(t1, format = "%Y-%m-%dT%H:%M:%OS%z") # usetz = TRUE) # no change on > usetz [1] "1995-05-25T15:30:00Mitteleuropäische Sommerzeit" > > # Is the : in offset the problem? > t3 <- strptime("1995-05-25T15:30:00+1000", format = "%Y-%m-%dT%H:%M:%S%z") > attributes(t3) $names [1] "sec" "min" "hour" "mday" "mon" "year" "wday" "yday" "isdst" $class [1] "POSIXlt" "POSIXt" > format(t3, format = "%Y-%m-%dT%H:%M:%OS%z") [1] "1995-05-25T07:30:00Mitteleuropäische Sommerzeit" > # [1] "1995-05-25T07:30:00Mitteleuropäische Sommerzeit" > > strftime(t1, format = "%Y-%m-%dT%H:%M:%OS%z", tz = "+0200") # no effect on > setting tz [1] "1995-05-25T15:30:00Mitteleuropäische Sommerzeit" > > Sys.setenv(TZ="GMT") # no working effect on format and strftime ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.