aha*_*ala 27 timezone r strptime
在哪里可以找到R函数的所有合法时间名称列表as.POSIXct?
as.POSIXct("1970-01-01",tz="CST") 生成"CST"(中央标准时间)未知的警告.
Rap*_*ter 25
时区的东西可以驱动你坚果!
位于德国,这是我以前设置我的tz:
> options(tz="Europe/Berlin")
Run Code Online (Sandbox Code Playgroud)
这样做,我总是想知道为什么R会抛出"未知时区"警告:
> 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'
Run Code Online (Sandbox Code Playgroud)
有一天我发现设置tz via options()是不够的,因为环境变量TZ不受影响因此所有的麻烦:
> Sys.getenv("TZ")
[1] "MET-1MST"
Run Code Online (Sandbox Code Playgroud)
改变这一点应该消除令人讨厌的警告:
> 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"
Run Code Online (Sandbox Code Playgroud)
Jos*_*ich 21
?Sys.timezone有一些提示,具体看在:"R_HOME/share/zoneinfo/zone.tab"(R_HOME在目录R为安装在).请记住,时区是令人讨厌的,他们的许多细微差别是特定的操作系统(和区域设置?).
在您的具体情况下,您想要"CST6CDT"而不是"CST".
无法在我的make上的那个位置找到它,但在源目录中找到了一个压缩版本.以下是出现在zones.tab文件顶层的时区缩写列表:
CET, CST6CDT, Cuba, EET, EST, EST5EDT, Egypt, Eire, Factory, GB, GB-Eire, GMT,
GMT+0, GMT-0, GMT0, Greenwich, HST, Hongkong, Iceland, Iran, Israel, Jamaica, Japan,
Kwajalein, Libya, MET, MST, MST7MDT, NZ, NZ-CHAT, Navajo, PRC, PST8PDT, Poland, Portugal,
ROC, ROK, Singapore, Turkey, UCT, UTC, Universal, W-SU, WET, Zulu
Run Code Online (Sandbox Code Playgroud)
还有一些带有大陆/国家/地区名称的文件夹,它们有更多选项,America/New_York例如上面的示例:
Africa/ Asia/ Canada/ Indian/
America/ Atlantic/ Chile/ Mexico/
Antarctica/ Australia/ Etc/ Pacific/
Arctic/ Brazil/ Europe/ US/
Run Code Online (Sandbox Code Playgroud)
这是在/R-2.11.1/src/extra/tzone/zoneinfo.zip文件中找到的.
大多数R平台使用由David Olson编译的时区数据库,其中首选参考是按位置.名字有点过时,但它们会帮助你开始.
查找可用时区的完整列表(在Windows上不起作用):
OlsonNames()
Run Code Online (Sandbox Code Playgroud)
对于运行Windows的人来说OlsonNames()不起作用:请在此处查看完整列表.
或者在这里更详细地阅读http://www.twinsun.com/tz/tz-link.htm