2012-08-27 11 views
5

Używam wersji 2.15.1 na komputerze Mac z systemem OS X Mountain Lion. Próbuję użyć pakietu lubridate (v 1.1.0), aby wygenerować sekwencję w wschodniej strefie czasowej USA w 2011 r. W odstępach 15-minutowych. Dodaje się wydaje jak to powinno działać:Czas letni w lubridate

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") 

Teraz, w 2011 roku czas letni rozpoczął się o 2 w nocy na 13 marca 16 pierwszych wartości Espan na ten dzień to:

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" 

W powyżej wyników usunąłem daty, aby dopasować je tutaj. Ale daje mi to, czego się spodziewam. Czas jednej godziny po 1:00 czasu EST to 3 rano EDT. Jednak czas letni zakończony w dniu 6 listopada, a tu są pierwsze 16 wartości Espan w tym dniu:

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" 

Dlaczego 1 AM EDT pojawiają się dwa razy? Czy godzina 1 godziny później niż 1 godzina EDT nie powinna być godziną EST? Czy to jest problem z lubridate, czy jakimś dziwactwem systemu operacyjnego?

+0

Po prostu zauważ, że błąd ten został naprawiony. –

Odpowiedz

4

Myślę, że to błąd.

> 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" 
+0

Dzięki. Dla jasności wygląda na to, że jest to bug w lubridate. – Ringold

+0

Wygląda na to. Jednak strefy czasowe i czas letni są często trudne i specyficzne dla systemu operacyjnego. – GSee

+0

Mam podobne wyniki do @Gsee z R wersji 2.15.1 (2012-06-22) na x86_64-pc-mingw32/x64 (64-bit), więc może nie być specyficzne dla systemu operacyjnego, ale specyficzne dla lubridate. –

Powiązane problemy