tl; डॉ
myGregCal.toZonedDateTime().toEpochSecond() // Convert from troublesome legacy `GregorianCalendar` to modern `ZonedDateTime`.
और दूसरी दिशा जा रहा ...
GregorianCalendar.from( // Convert from modern `ZonedDateTime` to troublesome legacy class `GregorianCalendar`.
Instant.ofEpochSecond(yourCountOfWholeSecondsSinceEpoch) // Moment in UTC.
.atZone( // Apply `ZoneId` to `Instant` to produce a `ZonedDateTime` object.
ZoneId.of("Africa/Tunis")
)
)
बचें विरासत तिथि-समय वर्गों
अन्य जवाब सही और कम कर रहे हैं। लेकिन, FYI करें, परेशानी पुराने तिथि-समय कक्षाएं ऐसे java.util.Date
, java.util.Calendar
, और java.text.SimpleDateFormat
के रूप में अब legacy, जावा में बनाया java.time वर्गों द्वारा जगह ले ली हैं 8 & जावा 9.
तो यहाँ बदलने और आधुनिक उपयोग करने के लिए कैसे है आपकी समस्या के लिए कक्षाएं। आधुनिक वर्ग ZonedDateTime
को विरासत वर्ग GregorianCalendar
से
java.time
परिवर्तित करते हैं। पुराने वर्गों में जोड़े गए नए तरीकों को कॉल करें।
ZonedDateTime zdt = myGregCal.toZonedDateTime() ;
और दूसरी दिशा जा रहा ...
GregorianCalendar myGregCal = GregorianCalendar.from(zdt) ;
“Unix time” द्वारा आप यूटीसी में 1970 के पहले पल की epoch reference के बाद से पूरे सेकंड की गिनती के लिए होती हैं, 1970-01-01T00: 00: 00Z , फिर toEpochSecond
पर कॉल करें।
long secondsSinceEpoch = zdt.toEpochSecond() ;
आप मिलीसेकेंड की गिनती की है तो 1970 के बाद से यूटीसी में शुरू किया था, तो एक Instant
निकालें। Instant
कक्षा UTC में nanoseconds (दशमलव अंश के नौ (9) अंकों के संकल्प के साथ समयरेखा पर एक पल का प्रतिनिधित्व करती है)।
Instant instant = zdt.toInstant() ;
अब ask for the count of milliseconds।
long millisecondsSinceEpoch = instant.toEpochMill() ;
ध्यान रखें कि या तो पूरा सेकंड या milliseconds डेटा हानि शामिल हो सकता है के लिए पूछ रहा। ZonedDateTime
और Instant
दोनों नैनोसेकंड को हल करते हैं। इसलिए कोई भी microseconds या मौजूद नैनोसेकंड को अनदेखा कर दिया जाएगा क्योंकि आप अपने पूरे सेकंड या मिलीसेकंड को गिनते हैं।
बारे java.time
java.time ढांचे जावा 8 और बाद में बनाया गया है। ये कक्षाएं परेशान पुराने legacy दिनांक-समय कक्षाएं जैसे java.util.Date
, Calendar
, & SimpleDateFormat
प्रदान करती हैं।
Joda-Time प्रोजेक्ट, अब maintenance mode में, java.time कक्षाओं में माइग्रेशन की सलाह देता है।
और जानने के लिए, Oracle Tutorial देखें। और कई उदाहरणों और स्पष्टीकरणों के लिए स्टैक ओवरफ़्लो खोजें। विशिष्टता JSR 310 है।
एक JDBC driver अनुरूप JDBC 4.2 साथ या बाद में उपयोग करके आप अपने डाटाबेस के साथ java.time वस्तुओं सीधे का आदान-प्रदान कर सकते हैं। तारों की कोई ज़रूरत नहीं है और न ही java.sql। * कक्षाएं।
जावा.टाइम कक्षाएं कहां प्राप्त करें?
ThreeTen-Extra परियोजना अतिरिक्त कक्षाओं के साथ java.time फैली हुई है। यह परियोजना java.time के संभावित भविष्य के जोड़ों के लिए एक सिद्ध भूमि है। आपको यहां कुछ उपयोगी कक्षाएं मिल सकती हैं जैसे Interval
, YearWeek
, YearQuarter
, और more।
+1 जोडा समय –
हे धन्यवाद। मुझे बस आपके द्वारा लिखे गए कोड की आवश्यकता है। आपका बहुत बहुत धन्यवाद! – androidNoob
चूंकि यूनिक्स समय में मिलीसेकंड नहीं था? – Pacerier