2012-12-05 15 views
38

मुझे 1 9 70-01-01 यूटीसी से मिलीसेकंड की संख्या अब तक जावा में यूटीसी प्राप्त करने की आवश्यकता है।जावा में युग (1 980-01-01) से मिलीसेकंड कैसे प्राप्त करूं?

मैं भी 1 9 70-01-01 यूटीसी से किसी भी अन्य यूटीसी तिथि समय तक मिलीसेकंड की संख्या प्राप्त करने में सक्षम होना चाहूंगा।

+3

करने के लिए कॉल किया जाता है [क्या आप की कोशिश की है?] (Http://whathaveyoutried.com) – thegrinner

+0

यह किसी भी अनुसंधान प्रयास दिखाई नहीं देता । – jlordo

+1

@PaulG - डाउनवोट के लिए नंबर एक कारण * अनुसंधान प्रयास * है। सवाल एक साधारण गूगल द्वारा हल किया गया है। –

उत्तर

96

कैसे System.currentTimeMillis()?

JavaDoc से:

रिटर्न:अंतर, मिलीसेकंड में मापा वर्तमान समय और आधी रात के बीच, 1 जनवरी, 1970 यूटीसी

जावा 8java.time ढांचे का परिचय है, विशेष रूप से Instant वर्ग जो "... मॉडल एक ... समय रेखा पर बिंदु ...":

long now = Instant.now().toEpochMilli(); 

रिटर्न:1970-01-01T00 की अवधि के बाद मिलीसेकेंड की संख्या: 00: 00Z - काफी ऊपर :-)

चीयर्स,

+2

चूंकि यह उत्तर 2012 था और जावा 8 इसके आसपास नहीं था, यह एक अच्छा है। Prezemek से java.time जवाब उतना ही अच्छा है। यह वर्तमान जावा 8 जावा.टाइम फ्रेमवर्क को मानता है। –

+1

संपादन के लिए: मैंने मिलीसेकंड में यूटीसी समय प्राप्त करने के कुछ तरीकों का परीक्षण किया और java.time.Instant.now()। ToEpochMilli को अच्छी तरह से काम करने के लिए मिला। मैंने इसे ZonedDateTime.now (जोनऑफसेट.यूटीसी) विधि विकल्पों (जिसे मैंने अन्य पदों में विकल्पों के रूप में देखा है) से तुलना की है और अपेक्षित के रूप में, Java.time.Instant.now() दृष्टिकोण मेरी मशीन पर थोड़ा तेज़ था ... लगातार तीस रनों पर कम एकल अंक मिलीसेकंड। –

10

के रूप में भी एक ही यानी System.currentTimeMillis()

25

java.time

कोशिश java.time ढांचे जावा 8 और बाद में बनाया का उपयोग करना।

import java.time.Instant; 

Instant.now().toEpochMilli(); //Long = 1450879900184 
Instant.now().getEpochSecond(); //Long = 1450879900 

यह यूटीसी में काम करता है क्योंकि Instant.now() वास्तव में Clock.systemUTC().instant()

https://docs.oracle.com/javase/8/docs/api/java/time/Instant.html

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