5

OS X Mountain Lion を搭載した Mac で R 2.15.1 を実行しています。lubridateパッケージ (v 1.1.0) を使用して、2011 年の米国東部時間帯の一連の時刻を 15 分間隔で生成しようとしています。以下はうまくいくようです:

d0 <- mdy_hms("1/1/2011 5:00:00", tz="UTC")
dspan <- d0 + c(0:35039) * minutes(15)
espan <- with_tz(dspan,tz="America/New_york")

現在、2011 年の夏時間は 3 月 13 日の午前 2 時に始まりました。その日の espan の最初の 16 の値は次のとおりです。

espan[(month(espan)==3)&(day(espan)==13)][1:16]

 [1] "00:00:00 EST" "00:15:00 EST" "00:30:00 EST" "00:45:00 EST"
 [5] "01:00:00 EST" "01:15:00 EST" "01:30:00 EST" "01:45:00 EST"
 [9] "03:00:00 EDT" "03:15:00 EDT" "03:30:00 EDT" "03:45:00 EDT"
[13] "04:00:00 EDT" "04:15:00 EDT" "04:30:00 EDT" "04:45:00 EDT"

上記の出力では、ここに収まるように日付を削除しました。しかし、それは私が期待するものを私に与えています。EST の午前 1 時から 1 時間後の時刻は EDT の午前 3 時です。ただし、夏時間は 11 月 6 日に終了し、その日の espan の最初の 16 の値は次のとおりです。

espan[(month(espan)==11)&(day(espan)==6)][1:16]

 [1] "00:00:00 EDT" "00:15:00 EDT" "00:30:00 EDT" "00:45:00 EDT"
 [5] "01:00:00 EDT" "01:15:00 EDT" "01:30:00 EDT" "01:45:00 EDT"
 [9] "01:00:00 EDT" "01:15:00 EDT" "01:30:00 EDT" "01:45:00 EDT"
[13] "02:00:00 EST" "02:15:00 EST" "02:30:00 EST" "02:45:00 EST"

1 AM EDT が 2 回表示されるのはなぜですか? EDT の午前 1 時より 1 時間後の時刻は、EST の午前 1 時であるべきではありませんか? これは の問題lubridateですか、それともオペレーティング システムの癖ですか?

4

1 に答える 1

4

それはバグだと思います。

> seq(as.POSIXct("2011-11-06 00:15:00", tz='America/New_York'), 
      as.POSIXct('2011-11-06 02:45:00', tz='America/New_York'), 
      by='min')[c(TRUE, rep(FALSE, 14))]

 [1] "2011-11-06 00:15:00 EDT" "2011-11-06 00:30:00 EDT" "2011-11-06 00:45:00 EDT"
 [4] "2011-11-06 01:00:00 EDT" "2011-11-06 01:15:00 EDT" "2011-11-06 01:30:00 EDT"
 [7] "2011-11-06 01:45:00 EDT" "2011-11-06 01:00:00 EST" "2011-11-06 01:15:00 EST"
[10] "2011-11-06 01:30:00 EST" "2011-11-06 01:45:00 EST" "2011-11-06 02:00:00 EST"
[13] "2011-11-06 02:15:00 EST" "2011-11-06 02:30:00 EST" "2011-11-06 02:45:00 EST"
于 2012-08-27T22:25:51.020 に答える