web-dev-qa-db-ja.com

R strptime / as.POSIXctのタイムゾーン名が不明です

R関数_as.POSIXct_のすべての有効な時間名のリストはどこにありますか?

as.POSIXct("1970-01-01",tz="CST")は、 "CST"(中央標準時)が不明であるという警告を生成します。

28
ahala

?Sys.timezoneには、特に調べるためのヒントがあります:"R_HOME/share/zoneinfo/zone.tab"R_HOMEは、Rがインストールされているディレクトリです。タイムゾーンは厄介であり、そのニュアンスの多くはオペレーティングシステム(およびロケール?)固有であることを覚えておいてください。

特定のケースでは、"CST6CDT" の代わりに "CST"

21
Joshua Ulrich

タイムゾーンのものはあなたを動かすことができます[〜#〜] nuts [〜#〜] !!

ドイツにいるので、これは私がtzを設定するために使用していたことです。

_> options(tz="Europe/Berlin")
_

そうすることで、なぜ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'
_

いつか、環境変数TZが影響を受けないため、options()を介してtzを設定するだけでは不十分であり、すべての問題が発生することがわかりました。

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

これを変更すると、厄介な警告が表示されなくなります。

_> 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"
_
24
Rappster

私のメイクのその場所でそれを見つけることができませんでしたが、ソースディレクトリに圧縮バージョンが見つかりました。 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

大陸/国の名前を持つフォルダもあり、上記のAmerica/New_Yorkの例のように、より多くのオプションがあります。

Africa/     Asia/       Canada/     Indian/
America/    Atlantic/   Chile/      Mexico/
Antarctica/ Australia/  Etc/        Pacific/
Arctic/     Brazil/     Europe/     US/

これは/R-2.11.1/src/extra/tzone/zoneinfo.Zipファイルで見つかりました。

8
42-

ほとんどのRプラットフォームは、David Olsonによってコンパイルされたタイムゾーンデータベースを使用します。名前は少し古くなっていますが、それらはあなたが始めるのに役立ちます。

利用可能なタイムゾーンの完全なリストを検索します(Windowsでは機能しません)。

OlsonNames()

OlsonNames()が機能しないウィンドウを実行している人のために: ここで完全なリストを参照してください

または詳細はこちら http://www.twinsun.com/tz/tz-link.htm

8
mmann1123