कन्वर्ट UNIX युग वस्तु दिनांक करने के लिए


118

मैं समान रूप से वितरित समय श्रृंखला पर गणना और प्रदर्शन कर रहा हूं। टाइमस्टैम्प वर्तमान में UNIX युग (जैसे 1352068320) के बाद से सेकंड की संख्या का प्रतिनिधित्व करने वाले पूर्णांक के रूप में संग्रहीत हैं , लेकिन Dateऑब्जेक्ट्स प्लॉटिंग के लिए अधिक उपयुक्त लगते हैं। मैं रूपांतरण कैसे कर सकता हूं?

मैंने पढ़ा है ?Date, ?as.Dateऔर ??epoch, लेकिन लगता है कि जानकारी छूट गई है।

जवाबों:


220

के माध्यम से जाओ POSIXctऔर तुम TZवहाँ स्थापित करना चाहते हैं - यहाँ आप मेरे (शिकागो) डिफ़ॉल्ट देखते हैं:

R> val <- 1352068320
R> as.POSIXct(val, origin="1970-01-01")
[1] "2012-11-04 22:32:00 CST"
R> as.Date(as.POSIXct(val, origin="1970-01-01"))
[1] "2012-11-05" 
R> 

संपादित करें: कुछ साल बाद, अब हम कभी भी पैकेज का उपयोग कर सकते हैं :

R> library(anytime)
R> anytime(1352068320)
[1] "2012-11-04 16:32:00 CST"
R> anydate(1352068320)
[1] "2012-11-04"
R> 

ध्यान दें कि यह सब बिना किसी प्रारूप या मूल तर्क के कैसे काम करता है


10
मुझे टाइमस्टैम्प पसंद हैं 1415560016876epochconverter.com इसे बिना किसी समस्या के तारीख में परिवर्तित करता है। ऊपर आपका कोड मुझे सामान देता है "46832-11-09 12:47:33 EDT"...
हैक-आर

29
विभाजित करने की कोशिश करें कि 1000: as.POSIXct(1415560016876/1000, origin="1970-01-01")"2014-11-09 13: 06: 56.875 सीएसटी" हो जाता है और आपको यह सुनिश्चित करने की आवश्यकता है कि क्या सेकंड्स (आर के रूप में) या मिलीसेकंड की उम्मीद है
डिर्क एडल्डबुलेटेल

2
@ शंभो: बस उल्टा करो और देखो कि क्या आप परिमाण के समान क्रम में हैं:print(as.numeric(Sys.time()))
डिर्क एडल्डबुलेटेल

2
यह हमेशा समान होता है: आपके पास जो कुछ भी होता है, वह वर्तमान समय के समान पैमाने पर आता है : print(as.numeric(Sys.time()), digits=16)छह अंकों के साथ यह एक लिनक्स सिस्टम है। इसके अलावा, आप 1000 से विभाजित कर सकते हैं; यह छोटा नहीं होता है।
डिर्क एडल्डबुलेटेल

1
आप R चर से सिर्फ स्थानीय समय कैसे निकालेंगे, और दिनांक को डंप करेंगे?
स्ट्रैटिक्स

17

में library(lubridate), के बाद से 1970-01-01 00:00:00 यूटीसी सेकंड की संख्या के रूप में सहेजा दिनांक और समय के संख्यात्मक अभ्यावेदन, के साथ तारीखों में coherced किया जा सकता है as_datetime():

lubridate::as_datetime(1352068320)

[1] "2012-11-04 22:32:00 UTC"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.