मैं पैटर्न yyyy-MM-dd hh में एक स्ट्रिंग है। तो हम LocalDateTime
के रूप में पार्स करते हैं।
DateTimeFormatter
ऑब्जेक्ट के साथ अपने इनपुट से मेल खाने के लिए एक स्वरूपण पैटर्न परिभाषित करें।
String input = "2017-01-23 12:34 PM" ;
DateTimeFormatter f = DateTimeFormatter.ofPattern("uuuu-MM-dd hh:mm a");
LocalDateTime ldt = LocalDateTime.parse(input , f);
ldt.toString(): 2017-01-23T12: 34
ध्यान दें कि एक LocalDateTime
नहीं एक विशेष क्षण, तभी संभव क्षणों की एक सीमा के बारे में एक अस्पष्ट विचार है । उदाहरण के लिए, पेरिस फ्रांस में मध्यरात्रि के कुछ मिनट बाद भी मॉन्ट्रियल कनाडा में "कल" है। तो Europe/Paris
या America/Montreal
जैसे समय क्षेत्र के संदर्भ के बिना, बस "मध्यरात्रि के कुछ मिनट बाद" का कोई मतलब नहीं है।
ZoneId
और मैं समय क्षेत्र वस्तु अलग है, जिसमें ऊपर स्ट्रिंग दिनांक को दर्शाता है प्राप्त कर सकते हैं।
एक समय क्षेत्र ZoneId
वर्ग का प्रतिनिधित्व करती है।
ऐसे America/Montreal
, Africa/Casablanca
, या Pacific/Auckland
रूप continent/region
के प्रारूप में एक proper time zone name निर्दिष्ट करें,। 0-या IST
जैसे 3-4 अक्षर संक्षेप का उपयोग न करें क्योंकि सही समय क्षेत्र, मानकीकृत नहीं, और यहां तक कि अनूठा (!) भी नहीं है।
ZoneId z = ZoneId.of("America/Montreal");
ZonedDateTime
ZoneId
लागू करें एक ZonedDateTime
जो वास्तव में समय, इतिहास में एक विशेष क्षण पर एक बिंदु है पाने के लिए।
ZonedDateTime zdt = ldt.atZone(z);
zdt.toString(): 2017-01-23T12: 34-05: 00 [अमेरिका/मॉन्ट्रियल]
Instant
मैं करने के लिए इस परिवर्तित करना चाहते हैं नीचे प्रारूप। yyyy-MM-yyyy HH: mm: ss Z
पहले, जानते हैं कि एक Z
शाब्दिक वर्ण Zulu
के लिए कम है और UTC का मतलब है। दूसरे शब्दों में, शून्य घंटे के offset-from-UTC, +00:00
।
Instant
वर्ग ((9) एक दशमलव भिन्न के अंकों को नौ तक) nanoseconds के एक संकल्प के साथ UTC में समय रेखा पर एक पल के प्रतिनिधित्व करता है।
आप ऑब्जेक्ट को ZonedDateTime
से निकाल सकते हैं।
Instant instant = zdt.toInstant(); // Extracting the same moment but in UTC.
मानक ISO 8601 प्रारूप में एक स्ट्रिंग उत्पन्न करने के लिए इस तरह के 2017-01-22T18:21:13.354Z
के रूप में, फोन toString
। मानक प्रारूप में कोई रिक्त स्थान नहीं है, घंटे-मिनट-सेकंड से वर्ष-महीने की तारीख को अलग करने के लिए T
का उपयोग करता है, और शून्य के ऑफसेट के लिए Z
कैनोनिक रूप से जोड़ता है।
String output = instant.toString();
instant.toString(): 2017-01-23T17: 34: 00Z
मैं दृढ़ता से संभव मानक प्रारूप जब भी उपयोग करने का सुझाव। यदि आप अपने निर्दिष्ट वांछित प्रारूप में रिक्त स्थान का उपयोग करने पर जोर देते हैं, तो DateTimeFormatter
ऑब्जेक्ट में अपना स्वयं का स्वरूपण पैटर्न परिभाषित करें या Instant::toString
के आउटपुट पर केवल एक स्ट्रिंग मैनिपुलेशन करें।
String output = instant.toString()
.replace("T" , " ") // Substitute SPACE for T.
.replace("Z" , " Z"); // Insert SPACE before Z.
उत्पादन: 2017/01/23 17:34:00 जेड
इस code live at IdeOne.com की कोशिश करो।
java.time
बारे java.time ढांचे जावा 8 और बाद में बनाया गया है। ये कक्षाएं परेशान पुराने legacyjava.util.Date
, Calendar
, & SimpleDateFormat
जैसी समय-समय पर कक्षाएं प्रदान करती हैं।
Joda-Time प्रोजेक्ट, अब maintenance mode में, java.time कक्षाओं में माइग्रेशन की सलाह देता है।
और जानने के लिए, Oracle Tutorial देखें। और कई उदाहरणों और स्पष्टीकरणों के लिए स्टैक ओवरफ़्लो खोजें। विशिष्टता JSR 310 है।
जावा.टाइम कक्षाएं कहां प्राप्त करें?
- Java SE 8 और SE 9 और बाद में
- में निर्मित।
- एक बंडल कार्यान्वयन के साथ मानक जावा एपीआई का हिस्सा।
- जावा 9 कुछ मामूली विशेषताओं और सुधारों को जोड़ता है।
- Java SE 6 और SE 7
- java.time कार्यक्षमता की ज्यादातर ThreeTen-Backport में जावा 6 & से 7 वापस भेजा गया है।
- Android
ThreeTen-Extra परियोजना अतिरिक्त कक्षाओं के साथ java.time फैली हुई है। यह परियोजना java.time के संभावित भविष्य के जोड़ों के लिए एक सिद्ध भूमि है। आपको यहां कुछ उपयोगी कक्षाएं मिल सकती हैं जैसे Interval
, YearWeek
, YearQuarter
, और more।
http://joda-time.sourceforge.net/ जावा में सभी दिनांक मैनिप्लेशंस को बहुत आसान बनाता है – NimChimpsky
@ एमिल मुझे आपके बाद यह सुविधा पता चल गई :) :) धन्यवाद। – John
एफवाईआई, [जोडा-टाइम] (http://www.joda.org/joda-time/) प्रोजेक्ट अब [रखरखाव मोड] (https://en.wikipedia.org/wiki/Maintenance_mode) में है, साथ टीम [java.time] (http://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html) कक्षाओं में माइग्रेशन की सलाह दे रही है। –