2015-10-02 8 views
8

मैं org.joda.time.LocalDateTime को यूनिक्स टाइमस्टैम्प में कैसे परिवर्तित करूं, यह देखते हुए कि स्थानीय समय यूटीसी टाइमज़ोन में है?जोडा लोकलडेटाइम को यूनिक्स टाइमस्टैम्प में कनवर्ट करें

उदाहरण:

new LocalDateTime(2015, 10, 02, 11, 31, 40)>1443785500

+0

यदि मुझे याद है, यूनिक्स टाइमस्टैम्प यूनिक्स युग के बाद से सेकंड की संख्या है, शायद कुछ ऐसा हो सकता है (http://stackoverflow.com/questions/22990067/how-to-extract-epoch-from-localdate- और-स्थानीय डेटाटाइम) – MadProgrammer

+1

एक 'लोकलडेट टाइम' में समय क्षेत्र नहीं है, इसलिए यह समय में एक पोनिट का प्रतिनिधित्व नहीं करता है। किसी भी समझ में आने के लिए आपको एक समय क्षेत्र निर्दिष्ट करना होगा। –

+0

@ जोन्स स्केट यह यूटीसी है! –

उत्तर

18

को देखते हुए आप चाहते हैं कि यूनिक्स टाइमस्टैम्प "दिया LocalDateTime, यूटीसी में" सबसे सरल दृष्टिकोण सिर्फ एक DateTime करने के लिए इसे यूटीसी के लिए DateTimeZone निर्दिष्ट द्वारा परिवर्तित, और परिवर्तित कि करने के लिए है:

LocalDateTime local = new LocalDateTime(2015, 10, 02, 11, 31, 40); 
DateTime utc = local.toDateTime(DateTimeZone.UTC); 
long secondsSinceEpoch = utc.getMillis()/1000; 

नोट यूनिक्स टाइमस्टैम्प के रूप में यहां सेकंड का उपयोग - अन्य एपीआई (जैसे java.util.Date) यूनिक्स युग के बाद मिलीसेकंड की उम्मीद कर सकते हैं।

+0

इसके अलावा आप '1000' के बजाय' DateTimeConstants.MILLIS_PER_SECOND' का उपयोग कर सकते हैं या 'अवधि। मिलिज़ (local.toDateTime (DateTimeZone.UTC) .getMillis) .getStandardSeconds' का उपयोग कर सकते हैं। – mixel

+0

सरल और साफ, जब जोडा डेवलपर getLocalMillis() को सार्वजनिक रूप से बेनकाब करने के कारण निकाल रहा है। लिंक: https://github.com/JodaOrg/joda-time/issues/87 – vijay

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