tl; डॉ
Instant.ofEpochMilli(1_360_753_217_219L) // UTC
2013-02-13T11: 00: 17.219Z
Instant.ofEpochMilli(1_360_753_217_219L)
.atZone(ZoneId.of("Europe/Istanbul")) // Same moment, two hours *ahead* of UTC.
2013-02-13T13: 00: 17.219 + 02: 00 [यूरोप/इस्तांबुल]
Instant.ofEpochMilli(1_360_753_217_219L)
.atZone(ZoneId.of("America/Caracas")) // Same moment, four-and-a-half hours *behind* UTC.
2013-02-13T06: 30: 17.219-04: 30 [अमेरिका/कराकस]
java.time
आप परेशानी पुराने तिथि-समय जल्द से जल्द बंडल के साथ वर्गों का उपयोग कर रहे हैं का उपयोग करना जावा के संस्करण। वे अब विरासत हैं, जावा.टाइम कक्षाओं द्वारा प्रदान की जाती हैं, किसी भी मंच पर सर्वोत्तम दिनांक-समय पुस्तकालय।
UTC (1 980-01-01T00: 00: 00Z) में 1 9 70 की शुरुआत में epoch reference date के बाद से मिलीसेकंड की संख्या से शुरू करें। अन्य बताते हैं कि आप यह नहीं समझ सकते कि एक युग संदर्भ दिनांक में समय क्षेत्र है, और यहां इस युग के साथ कि क्षेत्र यूटीसी है, जो शून्य घंटों का ऑफसेट है। अन्य सभी ऑफ़सेट इस के खिलाफ मापा जाता है, यूटीसी से आगे या यूटीसी के पीछे कई घंटे और मिनट।
Instant
वर्ग ((9) एक दशमलव भिन्न के अंकों को नौ तक) nanoseconds के एक संकल्प के साथ UTC में समय रेखा पर एक पल के प्रतिनिधित्व करता है।
long input = 1_360_753_217_219L ;
Instant instant = Instant.ofEpochMilli(input) ;
instant.toString(): 2013-02-13T11: 00: 17.219Z
आप किसी विशेष क्षेत्र के wall-clock time के लेंस के माध्यम से है कि एक ही पल को देखने के लिए चाहते हैं, एक लागू समय क्षेत्र।
एक समय क्षेत्र किसी विशेष क्षेत्र द्वारा उपयोग में ऑफसेट में अतीत, वर्तमान और भविष्य के परिवर्तनों का इतिहास है।
ऐसे America/Montreal
, Africa/Casablanca
, या Pacific/Auckland
रूप continent/region
के प्रारूप में एक proper time zone name निर्दिष्ट करें,। 0-या IST
जैसे 3-4 अक्षर संक्षेप का उपयोग न करें क्योंकि सही समय क्षेत्र, मानकीकृत नहीं, और यहां तक कि अनूठा (!) भी नहीं है।
ZoneId zEurope_Istanbul = ZoneId.of("Europe/Istanbul") ;
ZonedDateTime zdtEurope_Istanbul = instant.atZone(zEurope_Istanbul) ;
zdtEurope_Istanbul.toString(): 2013-02-13T13: 00: 17.219 + 02: 00 [यूरोप/इस्तांबुल]
आप किसी अन्य समय क्षेत्र आवेदन कर सकते हैं।
ZoneId zAmerica_Caracas = ZoneId.of("America/Caracas") ;
ZonedDateTime zdtAmerica_Caracas = zdtEurope_Istanbul.withZoneSameInstant(zAmerica_Caracas) ;
zdtAmerica_Caracas.toString(): 2013-02-13T06: 30: 17.219-04: 30 [अमेरिका/कराकस]
इस code live at IdeOne.com देखें।
इन तीन वस्तुओं, त्वरित & zdtEurope_Istanbul & zdtAmerica_Caracas, सब बहुत ही एक साथ पल, समय रेखा पर एक ही बिंदु का प्रतिनिधित्व ।
आपकी गिनती से युग यूटीसी में 11 बजे का प्रतिनिधित्व करता है। इस्तांबुल दो घंटे यूटीसी के आगे है, इसलिए उसी समय एक ही समय में 11 बजे के बाद दो घंटे, 1 अपराह्न (13:00) होता है। वेनेज़ुएला यूटीसी के पीछे है, इसलिए उसी समय एक ही समय में 6:30 बजे है। ये सब समझ में आता है, सभी एक ही पल लेकिन अलग दीवार घड़ी का समय।
आईएसओ 8601
का आदान प्रदान या तिथि-समय मूल्यों के भंडारण के लिए एक गिनती-से-युग का प्रयोग न करें। यह त्रुटि-प्रवण है, जो मानव द्वारा अर्थपूर्ण रूप से पढ़ने के लिए असंभव है, और संदिग्ध है क्योंकि कम से कम दो दर्जन युग संदर्भ विभिन्न सॉफ़्टवेयर सिस्टमों और विभिन्न ग्रैन्युलरिटीज़ (पूरे सेकेंड, मिलीसेकंड, माइक्रोसेकंड, नैनोसेकंड इत्यादि) द्वारा उपयोग में आने वाली तारीखें हैं।)।
अपने जेवीएम के बाहर दिनांक-समय मानों को पार करते समय, मानक प्रतिनिधित्व के लिए मानक ISO 8601 स्वरूपों का उपयोग करें। Java.time कक्षा स्ट्रिंग को पार्सिंग/जनरेट करते समय मानक स्वरूपों का डिफ़ॉल्ट रूप से उपयोग करती है। आप इस उत्तर के उदाहरण कोड में उन प्रारूपों को देख सकते हैं।
java.time
बारे java.time ढांचे जावा 8 और बाद में बनाया गया है।ये कक्षाएं परेशान पुराने legacyjava.util.Date
, Calendar
, & SimpleDateFormat
जैसी समय-समय पर कक्षाएं प्रदान करती हैं।
Joda-Time प्रोजेक्ट, अब maintenance mode में, java.time कक्षाओं में माइग्रेशन की सलाह देता है।
और जानने के लिए, Oracle Tutorial देखें। और कई उदाहरणों और स्पष्टीकरणों के लिए स्टैक ओवरफ़्लो खोजें। विशिष्टता JSR 310 है।
जावा.टाइम कक्षाएं कहां प्राप्त करें?
ThreeTen-Extra परियोजना अतिरिक्त कक्षाओं के साथ java.time फैली हुई है। यह परियोजना java.time के संभावित भविष्य के जोड़ों के लिए एक सिद्ध भूमि है। आपको यहां कुछ उपयोगी कक्षाएं मिल सकती हैं जैसे Interval
, YearWeek
, YearQuarter
, और more।
क्या कर 'console.log ((नई तारीख (1360753217219))। ToString())' और 'console.log ((नई तारीख (1360753217219))। ToUTCString())' आप दे? – robertc
मुझे खेद है, मुझे समस्या नहीं दिख रही है। कराकास में 6:30 तुर्की में 13:00 है। बस यह क्या है कि आप करने की कोशिश कर रहे हैं? – arcy
मिलीसेकंड यूटीसी के सापेक्ष हैं, बिंदु क्या है? –