2012-08-27 12 views
5

में डेलाइट बचत समय मैं ओएस एक्स माउंटेन शेर के साथ मैक पर आर 2.15.1 चला रहा हूं। मैं वर्ष 2011 के लिए 15 मिनट अंतराल पर यूएस पूर्वी समय क्षेत्र में समय के अनुक्रम उत्पन्न करने के लिए lubridate पैकेज (v 1.1.0) का उपयोग करने की कोशिश कर रहा हूं। निम्नलिखित है जैसे कि यह काम करना चाहिए लगता है:लुब्रिडेट

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 डेलाइट सेविंग टाइम में शुरू हुआ पर 2 पूर्वाह्न मार्च 13 पहले 16 उस तारीख को espan का मान हैं:

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" 

में आउटपुट के ऊपर मैंने इसे फिट करने के लिए तारीखों को हटा दिया। लेकिन यह मुझे वह दे रहा है जो मैं उम्मीद करता हूं। 1 बजे ईएसटी के एक घंटे बाद 3 बजे ईडीटी है।

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 दो बार क्यों दिखाई देता है: हालांकि, डेलाइट सेविंग टाइम उस तारीख को espan के पहले 16 नवंबर को समाप्त हो गया मूल्यों 6, और यहाँ कर रहे हैं? 1 बजे से 1 घंटे पहले ईडीटी 1 बजे ईएसटी नहीं होना चाहिए? क्या यह lubridate, या ऑपरेटिंग सिस्टम के कुछ quirk के साथ एक समस्या है?

+0

बस एक नोट कि यह बग तय किया गया प्रतीत होता है। –

उत्तर

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

धन्यवाद। बस स्पष्ट होने के लिए, यह लुब्र्रिडेट में एक बग प्रतीत होता है। – Ringold

+0

ऐसा प्रतीत होता है। हालांकि, टाइमज़ोन और डेलाइट सेविंग टाइम के मुद्दे अक्सर मुश्किल और ओएस विशिष्ट होते हैं। – GSee

+0

मुझे x86_64-pc-mingw32/x64 (64-बिट) पर आर संस्करण 2.15.1 (2012-06-22) के साथ @Gsee के समान परिणाम मिलते हैं, इसलिए यह ओएस विशिष्ट नहीं हो सकता है लेकिन विशिष्ट रूप से लुब्र्रिडेट हो सकता है। –