tl; डॉ
में यूटीसी :
Instant.now().minus( 1 , ChronoUnit.HOURS )
या, ज़ोनड:
Instant.now()
.atZone( ZoneId.of ( "America/Montreal" ) )
.minusHours( 1 )
Java.time का उपयोग करना
जावा 8 और बाद में नया जावा.टाइम फ्रेमवर्क बनाया गया है।
Instant
यदि आप केवल यूटीसी (जीएमटी) की परवाह करते हैं, तो Instantकक्षा का उपयोग करें ।
Instant instant = Instant.now ();
Instant instantHourEarlier = instant.minus ( 1 , ChronoUnit.HOURS );
सांत्वना देना।
System.out.println ( "instant: " + instant + " | instantHourEarlier: " + instantHourEarlier );
तत्काल: 2015-10-29T00: 37: 48.921Z | इंस्टेंटहोरलैर: 2015-10-28T23: 37: 48.921Z
इस बात पर ध्यान दें कि कल की तारीख पर वापस जाने के लिए यह तुरंत कैसे हुआ।
ZonedDateTime
यदि आप समय क्षेत्र की परवाह करते हैं, तो ZonedDateTimeकक्षा का उपयोग करें । आप एक पल के साथ शुरू कर सकते हैं और एक समय क्षेत्र, एक ZoneIdवस्तु असाइन कर सकते हैं । यह वर्ग डेलाइट सेविंग टाइम (DST) जैसी विसंगतियों के लिए आवश्यक समायोजन को संभालता है ।
Instant instant = Instant.now ();
ZoneId zoneId = ZoneId.of ( "America/Montreal" );
ZonedDateTime zdt = ZonedDateTime.ofInstant ( instant , zoneId );
ZonedDateTime zdtHourEarlier = zdt.minus ( 1 , ChronoUnit.HOURS );
सांत्वना देना।
System.out.println ( "instant: " + instant + "\nzdt: " + zdt + "\nzdtHourEarlier: " + zdtHourEarlier );
तत्काल: 2015-10-29T00: 50: 30.778Z
zdt: 2015-10-28T20: 50: 30.778-04: 00 [अमेरिका / मॉन्ट्रियल]
zdtHourEarlier: 2015-10-28T19: 50: 30.778-04: 00 [अमेरिका / मॉन्ट्रियल]
रूपांतरण
पुराने java.util.Date/.Calendar क्लासेस अब आउटमोडेड हैं। इनसे बचें। वे कुख्यात परेशान और भ्रमित हैं।
जब आपको java.time प्रकारों के लिए अभी तक अपडेट नहीं किए गए पुराने कोड के साथ संचालन के लिए पुरानी कक्षाओं का उपयोग करना चाहिए, तो रूपांतरण विधियों को कॉल करें। यहाँ उदाहरण कोड है जो किसी इंस्टैंट या ZonedDateTime से java.util.Date पर जा रहा है।
java.util.Date date = java.util.Date.from( instant );
... या ...
java.util.Date date = java.util.Date.from( zdt.toInstant() );
जावा के बारे में
Java.time ढांचे जावा 8 और बाद में बनाया गया है। इन कक्षाओं परेशानी वर्ष प्रतिस्थापित विरासत जैसे तिथि-समय कक्षाएं java.util.Date, Calendar, और SimpleDateFormat।
Joda समय परियोजना, अब में रखरखाव मोड , प्रवास करने की सलाह देता java.time कक्षाएं।
अधिक जानने के लिए, Oracle ट्यूटोरियल देखें । और कई उदाहरणों और स्पष्टीकरणों के लिए ढेर अतिप्रवाह खोजें। विशिष्टता JSR 310 है ।
आप अपने डेटाबेस से सीधे java.time वस्तुओं का आदान-प्रदान कर सकते हैं । JDBC 4.2 या उसके बाद के JDBC ड्राइवर का अनुपालन करें । तार की कोई जरूरत नहीं, कक्षाओं की कोई जरूरत नहीं ।java.sql.*
Java.time कक्षाएं कहाँ से प्राप्त करें?
ThreeTen-अतिरिक्त परियोजना अतिरिक्त कक्षाओं के साथ java.time फैली हुई है। यह परियोजना java.time के लिए भविष्य के संभावित अतिरिक्त के लिए एक साबित जमीन है। आप यहाँ कुछ उपयोगी वर्गों जैसे मिल सकता है Interval, YearWeek, YearQuarter, और अधिक ।
mktimeजावा में कोई समकक्ष है? इससे 60 मिनट घटाएं?