tl; डॉ
LocalDateTime.parse("2016-12-21T07:48:36") // Parse as a `LocalDateTime` given the lack of an offset or zone. *Not* an actual moment, only a rough approximation of potential moments along a range of about 26-27 hours.
.atOffset(ZoneOffset.ofHours(14)) // Assign an offset-from-UTC as context, giving meaning to determine an actual point on the timeline.
.toInstant() // Renders `Instant` object in UTC.
java.time
आधुनिक तरीका java.time जावा 8 और बाद में बनाया गया वर्गों के साथ है। ThreeTen-Backport प्रोजेक्ट में अधिकांश कार्यक्षमता जावा 6 & 7 पर बैक-पोर्ट की गई है।
ZoneOffset offset = ZoneOffset.ofHours(14); // fourteen hours ahead of UTC.
एक LocalDateTime
के रूप में स्ट्रिंग पार्स के रूप में इसके बारे में ऑफसेट या क्षेत्र कोई भी जानकारी का अभाव है। आपका इनपुट मानक ISO 8601 प्रारूप में है, इसलिए फ़ॉर्मेटिंग पैटर्न निर्दिष्ट करने की आवश्यकता नहीं है।
LocalDateTime ldt = LocalDateTime.parse("2016-12-21T07:48:36");
किसी ऑब्जेक्ट को OffsetDateTime
प्राप्त करने के लिए ऑफसेट को स्थानीय दिनांक-समय पर लागू करें।
OffsetDateTime odt = ldt.atOffset(offset);
कि से, एक Instant
जो UTC में हमेशा होता है निकालें।
Instant instant = odt.toInstant();
instant.toString(): 2016-12-20T17: 48: 36Z
UTC में, मूल्य एक अलग तिथि, 21 वीं की बजाय 20 वीं है।
live code at IdeOne.com देखें।
बारे 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।
आप जानते हैं कि आपकी समस्या केवल इसलिए है कि आपने असमर्थित "यूटीसी +14" का उपयोग किया था। GetTimeZone केवल "जीएमटी + एक्सएक्स" फॉर्म – Sxilderik
जानता है आपको ** + 14 ** ऑफ़सेट कहां से मिला? –