tl; डॉ
Instant.ofEpochMilli( 1_322_018_752_992L ) // Parse count of milliseconds-since-start-of-1970-UTC into an `Instant`.
.atZone( ZoneId.of( "Africa/Tunis" ) ) // Assign a time zone to the `Instant` to produce a `ZonedDateTime` object.
विवरण
अन्य उत्तर आउटमोडेड या गलत कक्षाओं का उपयोग करते हैं।
पुरानी तारीखों वाली कक्षाओं जैसे कि java.util.Date/.Calendar से बचें। वे खराब रूप से डिजाइन किए गए, भ्रमित और परेशान करने वाले साबित हुए हैं।
java.time
Java.time ढांचे जावा 8 और बाद में बनाया गया आता है। अधिकांश कार्यक्षमता जावा 6 और 7 के लिए वापस भेज दी गई है और आगे Android के लिए अनुकूलित है । उसी में से कुछ लोगों द्वारा बनाया गया था जैसा कि जोडा-टाइम ने बनाया था ।
एक Instantमें समय रेखा पर एक पल है यूटीसी के एक संकल्प के साथ नैनोसेकंड । यूटीसी में इसकी अवधि 1970 का पहला क्षण है।
अपने इनपुट डेटा को मानकर 1970-01-01T00: 00: 00Z (प्रश्न में स्पष्ट नहीं) से मिलीसेकंड की एक गिनती है, तो हम आसानी से एक का उपयोग कर सकते हैं Instant।
Instant instant = Instant.ofEpochMilli( 1_322_018_752_992L );
तत्काल .toString (): 2011-11-23T03: 25: 52.992Z
Zकि मानक में आईएसओ 8601 स्वरूपित स्ट्रिंग के लिए छोटा है Zuluऔर इसका मतलब है यूटीसी ।
प्राप्त करने के लिए, एक उचित समय क्षेत्र नाम का उपयोग करके समय क्षेत्र लागू करें ZonedDateTime।
ZoneId zoneId = ZoneId.of( "Asia/Kolkata" ) ;
ZonedDateTime zdt = instant.atZone( zoneId );
इस कोड को IdeOne.com पर लाइव देखें ।
Asia/Kolkata समय क्षेत्र ?
मुझे लगता है कि आपके कोड को प्रभावित करने वाले भारत का समय क्षेत्र आपके पास है। हम यहां देखते हैं कि Asia/Kolkataसमय क्षेत्र में समायोजन उसी दिन का समय प्रदान करता है जैसा कि आप रिपोर्ट करते हैं, 08:55जो हमारे यूटीसी मूल्य से साढ़े पांच घंटे आगे है 03:25।
2011-11-23T08: 55: 52.992 + 05: 30 [एशिया / कोलकाता]
डिफ़ॉल्ट क्षेत्र
आप JVM के वर्तमान डिफ़ॉल्ट समय क्षेत्र को लागू कर सकते हैं । सावधान रहें कि रनटाइम के दौरान डिफ़ॉल्ट किसी भी क्षण बदल सकता है । जेवीएम के भीतर किसी भी ऐप के किसी भी कोड में कोई भी कोड वर्तमान डिफ़ॉल्ट को बदल सकता है। यदि महत्वपूर्ण हो, तो उपयोगकर्ता से उनके वांछित / अपेक्षित समय क्षेत्र के लिए पूछें।
ZoneId zoneId = ZoneId.systemDefault();
ZonedDateTime zdt = ZonedDateTime.ofInstant( instant , zoneId );
जावा के बारे में
Java.time ढांचे जावा 8 और बाद में बनाया गया है। इन कक्षाओं परेशानी वर्ष प्रतिस्थापित विरासत जैसे तिथि-समय कक्षाएं java.util.Date, Calendar, और SimpleDateFormat।
Joda समय परियोजना, अब में रखरखाव मोड , प्रवास करने की सलाह देता java.time कक्षाएं।
अधिक जानने के लिए, Oracle ट्यूटोरियल देखें । और कई उदाहरणों और स्पष्टीकरणों के लिए ढेर अतिप्रवाह खोजें। विशिष्टता JSR 310 है ।
एक साथ JDBC ड्राइवर के अनुपालन JDBC 4.2 या बाद में, आप का आदान-प्रदान कर सकते हैं java.time अपने डेटाबेस के साथ सीधे वस्तुओं। स्ट्रिंग्स या java.sql के लिए कोई ज़रूरत नहीं है। * कक्षाएं।
Java.time कक्षाएं कहाँ से प्राप्त करें?
ThreeTen-अतिरिक्त परियोजना अतिरिक्त कक्षाओं के साथ java.time फैली हुई है। यह परियोजना java.time के लिए भविष्य के संभावित अतिरिक्त के लिए एक साबित जमीन है। आप यहाँ कुछ उपयोगी वर्गों जैसे मिल सकता है Interval, YearWeek, YearQuarter, और अधिक ।