6

R に一連の文字タイムスタンプがあります。クラスPOSIXctを直感的な方法を使用するように変更すると、R はあいまいな timezone を割り当てESTます。

例えば:

as.POSIXct("2012-08-06 15:32:00") 
as.POSIXct("2012-08-06 15:32:00", tz = "Australia/Brisbane") 
as.POSIXct("2012-08-06 15:32:00", tz = "") 

すべてが私の2つ(MacとWindows)のボックスで同じ出力を生成します:

"2012-08-06 15:32:00 EST"

ここでの問題はEST、任意の数のタイムゾーンである可能性があります: 米国の東部標準時、オーストラリア東部標準時、またはカナダの別のタイムゾーン (から?timezone):

これらの指定の一部は、あなたの考えとは異なる場合があることに注意してください。特に、EST はカナダで使用される夏時間なしのタイム ゾーンであり、EST5EDT や (オーストラリアの) 東部標準時ではありません。

このESTラベルを避けてタイムゾーンを設定する方法があります。?timezoneそれはほのめかされていますが、Rヘルプでは完全には説明されていません。オーストラリアのニュース サービスによって報告された、火星へのキュリオシティ着陸の時間として x を設定します。

x <- as.POSIXct("2012-08-06 15:32:00", tz = "Etc/GMT-10")
x
"2012-08-06 15:32:00 GMT-10"

これが正しいかどうかは、米国のタイムゾーンに変換し、カリフォルニアのニュース レポートで確認できます。

y <- format(x, tz = "America/Los_Angeles")
y
"2012-08-05 22:32:00"

このEtc/GMT+nまたはEtc/GMT-n表記法を使用する場合は、 からの次の注意事項に注意してください?timezone

多くのシステムは、UTC からの固定オフセットにある GMT+n および GMT-n 形式のタイムゾーンをサポートしています (したがって、DST はありません)。一部の使用方法とは異なり (ただし、PST8PDT などの名前と一致します)、負のオフセットは UTC よりも (東に) 時間進んでおり、正のオフセットは UTC よりも (西に) 時間遅れています。

4

1 に答える 1

6

最初の例の 1 行目と 3 行目tz=""は、 のデフォルトであるため、同じ出力を生成しますas.POSIXct。タイムゾーンが明示的に定義されているため、2 行目はより興味深いものです。

ただし"EST"、タイムゾーンがデフォルトでどのように出力されるかだけに注意してください。tzone属性はまだ明確です。

R> x <- as.POSIXct("2012-08-06 15:32:00", tz="Australia/Brisbane")
R> x
[1] "2012-08-06 15:32:00 EST"
R> attr(x, "tzone")
[1] "Australia/Brisbane"
于 2012-08-13T02:46:59.890 に答える