2012-08-13 8 views
6

मेरे पास आर में वर्ण टाइमस्टैम्प की एक श्रृंखला है। जब मैं अंतर्ज्ञानी विधियों का उपयोग करके अपनी कक्षा को POSIXct में बदलता हूं, तो आर अस्पष्ट टाइमज़ोन EST असाइन करता है।आर में समय क्षेत्र: ईएसटी जैसे संदिग्ध शर्तों से कैसे बचें?

उदाहरण के लिए:

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

समस्या यहाँ है 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 = "") 

सब मेरे दो (मैक और Windows) बक्से पर एक ही उत्पादन का उत्पादन संयुक्त राज्य अमेरिका, या ऑस्ट्रेलियाई पूर्वी मानक समय, या कनाडा में एक और समय क्षेत्र (?timezone से):

सावधान रहें कि इनमें से कुछ पदनाम आपके विचार में नहीं हो सकते हैं: में विशेष ईएसटी एक समय क्षेत्र है जो कनाडा में डेलाइट बचत समय के बिना उपयोग किया जाता है, न कि ईएसटी 5ईडीटी और न ही (ऑस्ट्रेलियाई) पूर्वी मानक समय।

टाइमज़ोन सेट करने का एक तरीका है जो इस EST लेबल से बचाता है। यह आर ?timezone सहायता में पूरी तरह से समझाया गया है, लेकिन पूरी तरह से समझाया नहीं गया है। मंगल ग्रह पर जिज्ञासा लैंडिंग के समय के रूप में स्थापना एक्स एक Australian news service द्वारा रिपोर्ट के रूप में:

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

और हम परीक्षण कर सकते हैं कि इस यह एक अमेरिका समय क्षेत्र को बदलने और एक Californian news report साथ की जाँच करके सही है:

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

इस Etc/GMT+n या Etc/GMT-n अंकन का उपयोग करते हैं, तो ?timezone से निम्न चेतावनी से सावधान करें:

कई सिस्टम जीएमटी + एन और जीएमटी-एन के फॉर्म टाइमोन का समर्थन करते हैं, जो यूटीसी (इसलिए कोई डीएसटी) से तय ऑफसेट पर हैं। कुछ उपयोग के विपरीत (लेकिन पीएसटी 8 पीडीटी जैसे नामों के अनुरूप), ऋणात्मक ऑफसेट यूटीसी के पूर्व (पूर्व) के आगे होते हैं, सकारात्मक ऑफसेट यूटीसी के पीछे (पश्चिम) हैं।

+0

बस इस [संबंधित सवाल और जवाब] (http://stackoverflow.com/a/8011954/1265353) – sfuj

+2

वहाँ समय/क्षेत्र से निपटने के लिए एक बहुत 'सर्वोत्तम प्रथाएं' कि वैचारिक साथ मदद कर सकते है पाया चीजों की तरफ :: http://stackoverflow.com/questions/2532729/daylight-saving-time-and-timezone-best-practices। – Thell

उत्तर

6

1 और अपना पहला उदाहरण में 3 लाइनों एक ही उत्पादन का उत्पादन क्योंकि tz=""as.POSIXct के लिए डिफ़ॉल्ट है। दूसरी पंक्ति अधिक दिलचस्प है क्योंकि टाइमज़ोन स्पष्ट रूप से परिभाषित किया गया है।

लेकिन ध्यान दें कि "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" 
+0

धन्यवाद जोश। यही वह सब मैं सुनिश्चित करना चाहता था। – sfuj

संबंधित मुद्दे