2010-10-28 11 views
19

में अज्ञात टाइमज़ोन नाम R फ़ंक्शन as.POSIXct के लिए सभी कानूनी समय नामों की सूची कहां मिल सकता है?आर strptime/as.POSIXct

as.POSIXct("1970-01-01",tz="CST") एक चेतावनी उत्पन्न करता है कि "सीएसटी" (केंद्रीय मानक समय) अज्ञात है।

उत्तर

19

?Sys.timezone कुछ संकेत हैं, विशेष रूप से इन्हें देखने के लिए: "R_HOME/share/zoneinfo/zone.tab" (R_HOME निर्देशिका आर स्थापित है)। ध्यान रखें कि समय क्षेत्र खराब हैं और उनमें से कई बारीकियां ऑपरेटिंग सिस्टम (और लोकेल?) विशिष्ट हैं।

अपने विशिष्ट मामले में, आप "CST" के बजाय "CST6CDT" चाहते हैं।

+0

धन्यवाद में पढ़ा है, इसलिए मैं नहीं बल्कि ईएसटी से EST5EDT इस्तेमाल करना चाहिए? यह स्पष्ट नहीं है ... – ahala

+2

हां, या आप "zones.tab" फ़ाइल में परिभाषित "America/New_York" का उपयोग कर सकते हैं। जैसा कि मैंने कहा, बुरा ... –

5

इसे मेरे स्थान पर उस स्थान पर नहीं मिला लेकिन उसे स्रोत निर्देशिका में एक ज़िपित संस्करण मिला। यहाँ समय क्षेत्र संक्षिप्त रूपों कि zones.tab फ़ाइल के शीर्ष स्तर पर दिखाई देते हैं की एक सूची है:

CET, CST6CDT, Cuba, EET, EST, EST5EDT, Egypt, Eire, Factory, GB, GB-Eire, GMT, 
GMT+0, GMT-0, GMT0, Greenwich, HST, Hongkong, Iceland, Iran, Israel, Jamaica, Japan, 
Kwajalein, Libya, MET, MST, MST7MDT, NZ, NZ-CHAT, Navajo, PRC, PST8PDT, Poland, Portugal, 
ROC, ROK, Singapore, Turkey, UCT, UTC, Universal, W-SU, WET, Zulu 

वहाँ भी महाद्वीप/देश के नाम, जो इस तरह के ऊपर .:

Africa/  Asia/  Canada/  Indian/ 
America/ Atlantic/ Chile/  Mexico/ 
Antarctica/ Australia/ Etc/  Pacific/ 
Arctic/  Brazil/  Europe/  US/ 
America/New_York उदाहरण के रूप में अधिक विकल्प हैं के साथ फ़ोल्डर हैं

यह /R-2.11.1/src/extra/tzone/zoneinfo.zip फ़ाइल में मिला था।

13

टाइमज़ोन सामान आपको एनयूटीएस ड्राइव कर सकता है !!

जर्मनी में स्थित होने के नाते, यह है कि क्या मैं अपने TZ सेट करने के लिए क्या करने के लिए प्रयोग किया जाता है:

> options(tz="Europe/Berlin") 

ऐसा करने से, मैं हमेशा सोचा है कि आर "अज्ञात समय क्षेत्र" चेतावनी फेंक होगा:

> t <- "2011-11-08 09:42:00" 
> as.POSIXct(t, tz=getOption("tz")) 
[1] "2011-11-08 09:42:00 CET" 
Warning messages: 
1: In strptime(xx, f <- "%Y-%m-%d %H:%M:%OS", tz = tz) : 
    unknown timezone 'MET-1MST' 
2: In as.POSIXct.POSIXlt(x) : unknown timezone 'MET-1MST' 
3: In strptime(x, f, tz = tz) : unknown timezone 'MET-1MST' 
4: In as.POSIXct.POSIXlt(as.POSIXlt(x, tz, ...), tz, ...) : 
    unknown timezone 'MET-1MST' 
5: In as.POSIXlt.POSIXct(x, tz) : unknown timezone 'MET-1MST' 

किसी दिन मुझे पता चला कि options() के माध्यम से सेटिंग tz पर्याप्त नहीं था क्योंकि पर्यावरण परिवर्तनीय TZ प्रभावित नहीं है और इसलिए सभी समस्याएं हैं:

> Sys.getenv("TZ") 
[1] "MET-1MST" 

इसे बदलने बुरा चेतावनी के साथ दूर करना चाहिए:

> Sys.setenv(TZ="Europe/Berlin") 
> Sys.getenv("TZ") 
[1] "Europe/Berlin" 
> as.POSIXct(t, tz=getOption("tz")) 
[1] "2011-11-08 09:42:00 CET" 
7

अधिकांश आर प्लेटफार्मों समय-क्षेत्र डेटाबेस डेविड ओल्सन, जहां वरीय संदर्भ स्थान के आधार पर है द्वारा संकलित का उपयोग करें। नाम थोड़े पुराने हैं लेकिन वे आपको जाने में मदद करेंगे।

(खिड़कियों पर काम नहीं करता है) उपलब्ध समय-क्षेत्र की एक पूरी सूची खोजें:

OlsonNames() 

खिड़कियों कि OlsonNames() काम नहीं करता चल रहा है लोगों के लिए: See the full list here

या अधिक विस्तार यहाँ http://www.twinsun.com/tz/tz-link.htm

+0

मेरे विंडोज़, विंडोज सर्वर 2012 और विंडोज 10 दोनों पर ठीक काम करता है। –

+0

हम्म दिलचस्प ... हमारे लिनक्स सर्वर पर काम करता है लेकिन मेरे विंडोज़ डेस्कटॉप पर नहीं। – mmann1123