2009-09-08 18 views
20

यदि मेरे पास लंदन के समय में इस तरह की तारीख है: "2009-06-03 1 9:30", मैं इसे यूएस वेस्ट कोस्ट में समकक्ष समय में कैसे परिवर्तित कर सकता हूं?आप आर में एक समय क्षेत्र से दूसरे समय में दिनांक/समय कैसे परिवर्तित करते हैं?

+0

संबंधित: [पॉज़िक्स ऑब्जेक्ट में टाइमज़ोन बदलें] (http://stackoverflow.com/q/14141537/271616)। –

उत्तर

11

सबसे पहले, एक POSIXct वस्तु में बदलने का लंदन समय:

pb.txt <- "2009-06-03 19:30" 
pb.date <- as.POSIXct(pb.txt, tz="Europe/London") 

फिर format का उपयोग अन्य समय क्षेत्र में तारीख मुद्रित करने के लिए:

> format(pb.date, tz="America/Los_Angeles",usetz=TRUE) 
[1] "2009-06-03 11:30:00 PDT" 

सही समय पाने के लिए कुछ गुर रहे हैं उपयोग करने के लिए जोन पहचानकर्ता। Converting time zones in R: tips, tricks and pitfalls

+0

प्रारूप पॉज़िक्स ऑब्जेक्ट को एक वर्ण में परिवर्तित करेगा। – obesechicken13

+0

क्या यह रूपांतरण डे लाइट बचत समायोजन का ख्याल रखता है? –

+0

हां यह समय वृद्धि डेटाबेस में है यदि यह उचित वृद्धि/कमी करता है। –

39

बदलें एक 'POSIXct' वस्तु की tzone विशेषता: क्रांतियों ब्लॉग पर इस पोस्ट में अधिक जानकारी

> pb.txt <- "2009-06-03 19:30" 
> pb.date <- as.POSIXct(pb.txt, tz="Europe/London") 
> attributes(pb.date)$tzone <- "America/Los_Angeles" 
> pb.date 
[1] "2009-06-03 11:30:00 PDT" 

ध्यान दें कि यह अभी भी एक POSIXct वस्तु है, tzone बदल गया है, और ऑफसेट सही है लागू किया गया:

> attributes(pb.date) 
$class 
[1] "POSIXct" "POSIXt" 

$tzone 
[1] "America/Los_Angeles" 
+0

स्वीकृत उत्तर की टिप्पणियों में पोस्ट किए गए लिंक को देखना न भूलें (http://blog.revolution-computing.com/2009/06/converting-time-zones.html)। मैंने ईएसटी का इस्तेमाल किया और सोचा कि यह जवाब काम नहीं करता है! – kaoD

16

पैकेज lubridate समय क्षेत्र परिवर्तित करने के लिए दो कार्य रखती है। सहायता पृष्ठ के अनुसार:


force_tz दिनांक-समय नया समय क्षेत्र में x रूप में एक ही घड़ी का समय है कि देता है।

force_tz(time, tzone = "America/Los_Angeles") 


with_tz समय क्षेत्र है, जिसमें एक पल प्रदर्शित किया जाता है बदल जाता है। तत्काल परिवर्तन के लिए घड़ी का समय प्रदर्शित होता है, लेकिन वर्णित समय का क्षण वही रहता है।

with_tz(time, tzone = "America/Los_Angeles") 
+2

अन्य विधियों की तुलना में अधिक क्लीनर। –

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

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