tl; डॉ
Instant.now()
.toString()
2016-05-06T23: 24: 25.694Z
ZonedDateTime
.now
(
ZoneId.of( "America/Montreal" )
)
.format( DateTimeFormatter.ISO_LOCAL_DATE_TIME )
.replace( "T" , " " )
2016-05-06 19: 24: 25.694
java.time
जावा 8 में और बाद में, हमारे पास java.time ढांचे जावा 8 और बाद में बनाया गया। ये नई कक्षाएं पुरानी पुरानी java.util.Date/.Calendar क्लासेस को दबा देती हैं। नई कक्षाएं अत्यधिक सफल जोडा-टाइम फ्रेमवर्क से प्रेरित हैं , जिसका उद्देश्य इसके उत्तराधिकारी के रूप में है, जो अवधारणा में समान है, लेकिन फिर से वास्तुकला में है। JSR 310 द्वारा परिभाषित । थ्रीटेन-एक्स्ट्रा प्रोजेक्ट द्वारा विस्तारित । ट्यूटोरियल देखें ।
ज्ञात हो कि java.time नैनोसेकंड रिज़ॉल्यूशन (9 डिग्री सेकंड के अंश में 9 दशमलव स्थान) में सक्षम है, बनाम मिलीसेकंड दोनों java.util.Date & Joda-Time रिज़ॉल्यूशन (3 दशमलव स्थानों) में सक्षम है। इसलिए जब केवल 3 दशमलव स्थानों को प्रदर्शित करने के लिए प्रारूपण किया जाता है, तो आप डेटा छिपा सकते हैं।
यदि आप अपने डेटा से किसी भी माइक्रोसेकंड या नैनोसेकंड को खत्म करना चाहते हैं, तो काटें।
Instant instant2 = instant.truncatedTo( ChronoUnit.MILLIS ) ;
Java.time क्लासेस डिफ़ॉल्ट रूप से आईएसओ 8601 फॉर्मेट का उपयोग तब करती हैं जब स्ट्रिंग / पार्सिंग उत्पन्न करती हैं। Z
अंत में ए के लिए कम है Zulu
, और इसका मतलब है यूटीसी ।
एक Instant
यूटीसी में समय रेखा पर एक क्षण का प्रतिनिधित्व करता है जिसमें नैनोसेकंड तक का संकल्प होता है । जावा 8 में वर्तमान क्षण को कैप्चर करना मिलीसेकंड तक सीमित है , जावा 9 में एक नए कार्यान्वयन के साथ आपके कंप्यूटर की हार्डवेयर घड़ी की क्षमताओं के आधार पर नैनोसेकंड्स पर कब्जा कर रहा है।
Instant instant = Instant.now (); // Current date-time in UTC.
String output = instant.toString ();
2016-05-06T23: 24: 25.694Z
अपने वांछित आउटपुट प्राप्त करने के लिए T
बीच में एक जगह, और Z
कुछ भी नहीं के साथ बदलें ।
String output = instant.toString ().replace ( "T" , " " ).replace( "Z" , "" ; // Replace 'T', delete 'Z'. I recommend leaving the `Z` or any other such [offset-from-UTC][7] or [time zone][7] indicator to make the meaning clear, but your choice of course.
2016-05-06 23: 24: 25.694
जैसा कि आप ऑफ़सेट या टाइम ज़ोन सहित परवाह नहीं करते हैं, किसी विशेष इलाके के लिए "स्थानीय" तिथि-समय असंबंधित करें।
String output = LocalDateTime.now ( ).toString ().replace ( "T", " " );
Joda समय
बेहद सफल जोदा-टाइम लाइब्रेरी java.time फ्रेमवर्क की प्रेरणा थी। सुविधाजनक होने पर java.time पर माइग्रेट करने की सलाह दी जाती है।
आईएसओ 8601 प्रारूप मिलीसेकेंड शामिल है, और के लिए डिफ़ॉल्ट है Joda समय 2.4 पुस्तकालय।
System.out.println( "Now: " + new DateTime ( DateTimeZone.UTC ) );
जब चला…
Now: 2013-11-26T20:25:12.014Z
इसके अलावा, यदि आवश्यक हो, तो आप एक नंबर के रूप में मिलिसेकंड के कुछ अंशों के लिए पूछ सकते हैं:
int millisOfSecond = myDateTime.getMillisOfSecond ();