Java Language
दिनांक वर्ग
खोज…
वाक्य - विन्यास
-
Date object = new Date();
-
Date object = new Date(long date);
पैरामीटर
पैरामीटर | व्याख्या |
---|---|
कोई पैरामीटर नहीं | आवंटन समय (निकटतम मिलीसेकंड) का उपयोग करके एक नई दिनांक ऑब्जेक्ट बनाता है |
लंबी तारीख | "युग" (1 जनवरी, 1970, 00:00:00 GMT) के बाद से मिलीसेकंड की संख्या निर्धारित समय के साथ एक नई दिनांक ऑब्जेक्ट बनाता है |
टिप्पणियों
प्रतिनिधित्व
आंतरिक रूप से, एक जावा तिथि वस्तु को लंबे समय तक दर्शाया जाता है; यह एक विशिष्ट समय ( युग के रूप में संदर्भित) के बाद से मिलीसेकंड की संख्या है। मूल जावा तिथि वर्ग में समय क्षेत्र आदि से निपटने के तरीके थे, लेकिन इन्हें तत्कालीन नए कैलेंडर वर्ग के पक्ष में हटा दिया गया था।
इसलिए यदि आप अपने कोड में जो कुछ करना चाहते हैं वह एक विशिष्ट समय का प्रतिनिधित्व करता है, तो आप एक तिथि वर्ग बना सकते हैं और इसे स्टोर कर सकते हैं, आदि। यदि आप उस तिथि के मानव-पठनीय संस्करण का प्रिंट आउट लेना चाहते हैं, हालांकि, आप एक कैलेंडर वर्ग बनाते हैं और घंटे, मिनट, सेकंड, दिन, समय क्षेत्र, आदि का उत्पादन करने के लिए अपने स्वरूपण का उपयोग करें। ध्यान रखें कि एक विशिष्ट मिलीसेकंड को विभिन्न समय क्षेत्रों में अलग-अलग घंटों के रूप में प्रदर्शित किया जाता है; आम तौर पर आप "स्थानीय" समय क्षेत्र में एक प्रदर्शित करना चाहते हैं, लेकिन प्रारूपण विधियों को ध्यान में रखना है कि आप इसे किसी अन्य के लिए प्रदर्शित करना चाहते हैं।
यह भी ध्यान रखें कि जेवीएम द्वारा उपयोग की जाने वाली घड़ियों में आमतौर पर मिलीसेकंड सटीकता नहीं होती है; घड़ी हर 10 मिलीसेकंड पर केवल "टिक" कर सकती है, और इसलिए, यदि समय की चीजें हैं, तो आप उस स्तर पर चीजों को सही तरीके से मापने पर भरोसा नहीं कर सकते हैं।
आयात कथन
import java.util.Date;
Date
वर्ग को java.util
पैकेज से आयात किया जा सकता है।
सावधान
Date
उदाहरण उत्परिवर्तनीय होते हैं, इसलिए उनका उपयोग करके थ्रेड-सुरक्षित कोड लिखना मुश्किल हो सकता है या गलती से आंतरिक स्थिति तक लेखन पहुंच प्रदान कर सकता है। उदाहरण के लिए, नीचे की कक्षा में, getDate()
विधि कॉल करने वाले को लेनदेन की तारीख को संशोधित करने की अनुमति देती है:
public final class Transaction {
private final Date date;
public Date getTransactionDate() {
return date;
}
}
इसका समाधान या तो date
फ़ील्ड की एक प्रति वापस करना है या जावा 8 में पेश किए गए java.time
में नए एपीआई का उपयोग करना है।
Date
वर्ग में अधिकांश निर्माण विधियाँ हटा दी गई हैं और उनका उपयोग नहीं किया जाना चाहिए। लगभग सभी मामलों में, तिथि संचालन के लिए Calendar
वर्ग का उपयोग करना उचित है।
जावा 8
Java 8, पैकेज java.time
में नए समय और दिनांक API का परिचय java.time
, जिसमें लोकलडेट और लोकलटाइम शामिल हैं । java.time
पैकेज में कक्षाएं एक java.time
एपीआई प्रदान करती हैं जो उपयोग करने में आसान है। यदि आप जावा 8 को लिख रहे हैं तो यह दृढ़ता से प्रोत्साहित किया जाता है कि आप इस नए एपीआई का उपयोग करें। तिथियाँ और समय देखें (java.time। *) ।
दिनांक ऑब्जेक्ट बनाना
Date date = new Date();
System.out.println(date); // Thu Feb 25 05:03:59 IST 2016
यहां इस Date
ऑब्जेक्ट में वर्तमान दिनांक और समय शामिल है जब यह ऑब्जेक्ट बनाया गया था।
Calendar calendar = Calendar.getInstance();
calendar.set(90, Calendar.DECEMBER, 11);
Date myBirthDate = calendar.getTime();
System.out.println(myBirthDate); // Mon Dec 31 00:00:00 IST 1990
Date
ऑब्जेक्ट का उपयोग पदावनत और हतोत्साहित किए जाने के बाद से Date
ऑब्जेक्ट एक Calendar
उदाहरण के माध्यम से सबसे अच्छा बनाया जाता है। Se करने के लिए हमें कारखाने विधि से Calendar
वर्ग का एक उदाहरण प्राप्त करने की आवश्यकता है। तब हम संख्याओं का उपयोग करके या महीने के मामले में वर्ष, माह और दिन निर्धारित कर सकते हैं या स्थिरांक प्रदान करने के लिए कैलेंडर कक्षा को पठनीयता में सुधार और त्रुटियों को कम करने के लिए प्रदान किया है।
calendar.set(90, Calendar.DECEMBER, 11, 8, 32, 35);
Date myBirthDatenTime = calendar.getTime();
System.out.println(myBirthDatenTime); // Mon Dec 31 08:32:35 IST 1990
तिथि के साथ, हम समय, मिनट और सेकंड के क्रम में भी गुजर सकते हैं।
दिनांक वस्तुओं की तुलना
कैलेंडर, दिनांक और स्थानीय दिनांक
पहले, बाद में, तुलना और विधियों के बराबर है
//Use of Calendar and Date objects
final Date today = new Date();
final Calendar calendar = Calendar.getInstance();
calendar.set(1990, Calendar.NOVEMBER, 1, 0, 0, 0);
Date birthdate = calendar.getTime();
final Calendar calendar2 = Calendar.getInstance();
calendar2.set(1990, Calendar.NOVEMBER, 1, 0, 0, 0);
Date samebirthdate = calendar2.getTime();
//Before example
System.out.printf("Is %1$tF before %2$tF? %3$b%n", today, birthdate, Boolean.valueOf(today.before(birthdate)));
System.out.printf("Is %1$tF before %1$tF? %3$b%n", today, today, Boolean.valueOf(today.before(today)));
System.out.printf("Is %2$tF before %1$tF? %3$b%n", today, birthdate, Boolean.valueOf(birthdate.before(today)));
//After example
System.out.printf("Is %1$tF after %2$tF? %3$b%n", today, birthdate, Boolean.valueOf(today.after(birthdate)));
System.out.printf("Is %1$tF after %1$tF? %3$b%n", today, birthdate, Boolean.valueOf(today.after(today)));
System.out.printf("Is %2$tF after %1$tF? %3$b%n", today, birthdate, Boolean.valueOf(birthdate.after(today)));
//Compare example
System.out.printf("Compare %1$tF to %2$tF: %3$d%n", today, birthdate, Integer.valueOf(today.compareTo(birthdate)));
System.out.printf("Compare %1$tF to %1$tF: %3$d%n", today, birthdate, Integer.valueOf(today.compareTo(today)));
System.out.printf("Compare %2$tF to %1$tF: %3$d%n", today, birthdate, Integer.valueOf(birthdate.compareTo(today)));
//Equal example
System.out.printf("Is %1$tF equal to %2$tF? %3$b%n", today, birthdate, Boolean.valueOf(today.equals(birthdate)));
System.out.printf("Is %1$tF equal to %2$tF? %3$b%n", birthdate, samebirthdate,
Boolean.valueOf(birthdate.equals(samebirthdate)));
System.out.printf(
"Because birthdate.getTime() -> %1$d is different from samebirthdate.getTime() -> %2$d, there are millisecondes!%n",
Long.valueOf(birthdate.getTime()), Long.valueOf(samebirthdate.getTime()));
//Clear ms from calendars
calendar.clear(Calendar.MILLISECOND);
calendar2.clear(Calendar.MILLISECOND);
birthdate = calendar.getTime();
samebirthdate = calendar2.getTime();
System.out.printf("Is %1$tF equal to %2$tF after clearing ms? %3$b%n", birthdate, samebirthdate,
Boolean.valueOf(birthdate.equals(samebirthdate)));
isBefore, isAfter, तुलना और विधियों के बराबर है
//Use of LocalDate
final LocalDate now = LocalDate.now();
final LocalDate birthdate2 = LocalDate.of(2012, 6, 30);
final LocalDate birthdate3 = LocalDate.of(2012, 6, 30);
//Hours, minutes, second and nanoOfsecond can also be configured with an other class LocalDateTime
//LocalDateTime.of(year, month, dayOfMonth, hour, minute, second, nanoOfSecond);
//isBefore example
System.out.printf("Is %1$tF before %2$tF? %3$b%n", now, birthdate2, Boolean.valueOf(now.isBefore(birthdate2)));
System.out.printf("Is %1$tF before %1$tF? %3$b%n", now, birthdate2, Boolean.valueOf(now.isBefore(now)));
System.out.printf("Is %2$tF before %1$tF? %3$b%n", now, birthdate2, Boolean.valueOf(birthdate2.isBefore(now)));
//isAfter example
System.out.printf("Is %1$tF after %2$tF? %3$b%n", now, birthdate2, Boolean.valueOf(now.isAfter(birthdate2)));
System.out.printf("Is %1$tF after %1$tF? %3$b%n", now, birthdate2, Boolean.valueOf(now.isAfter(now)));
System.out.printf("Is %2$tF after %1$tF? %3$b%n", now, birthdate2, Boolean.valueOf(birthdate2.isAfter(now)));
//compareTo example
System.out.printf("Compare %1$tF to %2$tF %3$d%n", now, birthdate2, Integer.valueOf(now.compareTo(birthdate2)));
System.out.printf("Compare %1$tF to %1$tF %3$d%n", now, birthdate2, Integer.valueOf(now.compareTo(now)));
System.out.printf("Compare %2$tF to %1$tF %3$d%n", now, birthdate2, Integer.valueOf(birthdate2.compareTo(now)));
//equals example
System.out.printf("Is %1$tF equal to %2$tF? %3$b%n", now, birthdate2, Boolean.valueOf(now.equals(birthdate2)));
System.out.printf("Is %1$tF to %2$tF? %3$b%n", birthdate2, birthdate3, Boolean.valueOf(birthdate2.equals(birthdate3)));
//isEqual example
System.out.printf("Is %1$tF equal to %2$tF? %3$b%n", now, birthdate2, Boolean.valueOf(now.isEqual(birthdate2)));
System.out.printf("Is %1$tF to %2$tF? %3$b%n", birthdate2, birthdate3, Boolean.valueOf(birthdate2.isEqual(birthdate3)));
जावा 8 से पहले की तारीख की तुलना
जावा 8 से पहले, तारीखों की तुलना java.util.Calendar और java.util.Date कक्षाओं का उपयोग करके की जा सकती है। दिनांक की तुलना करने के लिए दिनांक वर्ग 4 तरीके प्रदान करता है:
after
, before
, compareTo
और equals
तरीकों प्रत्येक दिनांक के लिए getTime () विधि द्वारा लौटाए गए मूल्यों की तुलना करें।
compareTo
विधि सकारात्मक पूर्णांक देता है।
- मान 0 से अधिक: जब दिनांक दिनांक तर्क के बाद है
- मान 0 से अधिक: जब दिनांक दिनांक तर्क से पहले है
- मान 0 के बराबर होता है: जब दिनांक दिनांक तर्क के बराबर होता है
equals
परिणाम उदाहरण के तौर पर दिखाए जा सकते हैं क्योंकि मिलीसेकंड की तरह मान भी स्पष्ट रूप से नहीं दिए जाने पर समान मूल्य के साथ शुरू नहीं होते हैं।
जावा 8 से
जावा 8 के साथ दिनांक के साथ काम करने के लिए एक नई वस्तु उपलब्ध है java.time.ocalDate । LocalDate
लागू करता है ChronoLocalDate , एक तारीख का सार प्रतिनिधित्व जहां कालक्रम, या कैलेंडर प्रणाली, प्लग-इन करने योग्य है।
दिनांक समय सटीक करने के लिए ऑब्जेक्ट java.time.LocalDateTime का उपयोग करना होगा। LocalDate
और LocalDateTime
तुलना करने के लिए समान विधियों के नाम का उपयोग करते हैं।
एक का उपयोग कर दिनांकों तुलना LocalDate
का उपयोग कर से अलग है ChronoLocalDate
क्योंकि कालक्रम, या कैलेंडर सिस्टम खाते में पहले एक ध्यान नहीं दिया जाता।
क्योंकि अधिकांश एप्लिकेशन को LocalDate
उपयोग करना चाहिए, ChronoLocalDate
उदाहरणों में शामिल नहीं है। आगे यहां पढ़ रहे हैं ।
अधिकांश अनुप्रयोगों को स्थानीय हस्ताक्षर के रूप में विधि हस्ताक्षर, फ़ील्ड और चर घोषित करना चाहिए, न कि यह [ChronoLocalDate] इंटरफ़ेस।
LocalDate
में दिनांक की तुलना करने के 5 तरीके हैं:
- isAfter (ChronoLocalDate अन्य)
- आइब्रो (क्रोनोक्लोडेट अन्य)
- इक्वेल (क्रोनोक्लोअकड अन्य)
- तुलना (क्रोनोक्लोडेट अन्य)
- बराबर (ऑब्जेक्ट obj)
LocalDate
पैरामीटर के मामले में, isAfter
, isBefore
, isEqual
, equals
और compareTo
अब इस प्रकार है:
int compareTo0(LocalDate otherDate) {
int cmp = (year - otherDate.year);
if (cmp == 0) {
cmp = (month - otherDate.month);
if (cmp == 0) {
cmp = (day - otherDate.day);
}
}
return cmp;
}
equals
विधि की जांच करता है, तो पैरामीटर संदर्भ तारीख पहले जबकि बराबर होती है isEqual
सीधे कॉल compareTo0
।
ChronoLocalDate
के अन्य श्रेणी के उदाहरण के ChronoLocalDate
में तारीखों की तुलना ChronoLocalDate
Epoch Day
का उपयोग करके की जाती है। ईपॉच डे की गिनती उन दिनों की एक साधारण वृद्धि की गिनती है, जहां 0 दिन 1970-01-01 (आईएसओ) है।
एक निश्चित स्ट्रिंग प्रारूप में दिनांक परिवर्तित करना
SimpleDateFormat
क्लास से format()
सप्लाई पैटर्न स्ट्रिंग का उपयोग करके Date
ऑब्जेक्ट को कुछ फॉर्मेट String
ऑब्जेक्ट में बदलने में मदद करता है।
Date today = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yy"); //pattern is specified here
System.out.println(dateFormat.format(today)); //25-Feb-16
applyPattern()
का उपयोग करके पैटर्न को फिर से लागू किया जा सकता है
dateFormat.applyPattern("dd-MM-yyyy");
System.out.println(dateFormat.format(today)); //25-02-2016
dateFormat.applyPattern("dd-MM-yyyy HH:mm:ss E");
System.out.println(dateFormat.format(today)); //25-02-2016 06:14:33 Thu
नोट: यहाँ mm
(छोटा अक्षर m) मिनट को दर्शाता है और MM
(कैपिटल M) महीने को दर्शाता है। वर्षों का प्रारूपण करते समय सावधानी बरतें: पूंजी "Y" ( Y
) वर्ष में "सप्ताह" को इंगित करती है, जबकि लोअर-केस "y" ( y
) वर्ष को इंगित करता है।
स्ट्रिंग को दिनांक में परिवर्तित करना
SimpleDateFormat
वर्ग से parse()
String
पैटर्न को Date
ऑब्जेक्ट में बदलने में मदद करता है।
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, Locale.US);
String dateStr = "02/25/2016"; // input String
Date date = dateFormat.parse(dateStr);
System.out.println(date.getYear()); // 116
पाठ प्रारूप के लिए 4 अलग-अलग शैलियाँ हैं, SHORT
, MEDIUM
(यह डिफ़ॉल्ट है), LONG
और FULL
, ये सभी स्थानीय पर निर्भर करते हैं। यदि कोई लोकेल निर्दिष्ट नहीं है, तो सिस्टम डिफ़ॉल्ट लोकेल का उपयोग किया जाता है।
अंदाज | Locale.US | Locale.France |
---|---|---|
कम | 6/30/09 | 30/06/09 |
मध्यम | जून 30, 2009 | 30 जून 2009 |
लंबा | 30 जून, 2009 | 30 जून 2009 |
पूर्ण | 30 जून 2009 को मंगलवार है | मर्डी 30 रस 2009 |
एक मूल दिनांक आउटपुट
प्रारूप स्ट्रिंग yyyy/MM/dd hh:mm.ss
के साथ निम्नलिखित कोड का उपयोग करके, हम निम्नलिखित आउटपुट प्राप्त करेंगे
2016/04/19 11: 45.36
// define the format to use
String formatString = "yyyy/MM/dd hh:mm.ss";
// get a current date object
Date date = Calendar.getInstance().getTime();
// create the formatter
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(formatString);
// format the date
String formattedDate = simpleDateFormat.format(date);
// print it
System.out.println(formattedDate);
// single-line version of all above code
System.out.println(new SimpleDateFormat("yyyy/MM/dd hh:mm.ss").format(Calendar.getInstance().getTime()));
दिनांक ऑब्जेक्ट के लिए स्वरूपित स्ट्रिंग प्रतिनिधित्व दिनांक में कनवर्ट करें
इस पद्धति का उपयोग किसी Date
स्वरूप में स्ट्रिंग स्वरूपण को रूपांतरित करने के लिए किया जा सकता है।
/**
* Parses the date using the given format.
*
* @param formattedDate the formatted date string
* @param dateFormat the date format which was used to create the string.
* @return the date
*/
public static Date parseDate(String formattedDate, String dateFormat) {
Date date = null;
SimpleDateFormat objDf = new SimpleDateFormat(dateFormat);
try {
date = objDf.parse(formattedDate);
} catch (ParseException e) {
// Do what ever needs to be done with exception.
}
return date;
}
एक विशिष्ट तिथि बनाना
जबकि जावा तिथि वर्ग में कई निर्माता हैं, आप देखेंगे कि अधिकांश पदावनत हैं। सीधे एक तिथि उदाहरण बनाने का एकमात्र स्वीकार्य तरीका या तो खाली कंस्ट्रक्टर का उपयोग करके या लंबे समय तक (मानक आधार समय के बाद मिलीसेकंड की संख्या) का उपयोग करके है। जब तक आप वर्तमान तिथि की तलाश में हैं तब तक न तो काम कर रहे हैं और न ही किसी अन्य तिथि का उदाहरण पहले से ही हाथ में है।
एक नई तारीख बनाने के लिए, आपको कैलेंडर उदाहरण की आवश्यकता होगी। वहां से आप कैलेंडर उदाहरण को उस तिथि तक सेट कर सकते हैं जिसकी आपको आवश्यकता है।
Calendar c = Calendar.getInstance();
यह वर्तमान समय के लिए सेट एक नया कैलेंडर उदाहरण देता है। कैलेंडर की तिथि और समय बदलने या इसे एकमुश्त सेट करने के कई तरीके हैं। इस स्थिति में, हम इसे एक विशिष्ट तिथि पर सेट करेंगे।
c.set(1974, 6, 2, 8, 0, 0);
Date d = c.getTime();
getTime
विधि हमें आवश्यक दिनांक उदाहरण लौटाती है। ध्यान रखें कि कैलेंडर सेट विधियाँ केवल एक या अधिक फ़ील्ड सेट करती हैं, वे उन सभी को सेट नहीं करती हैं। यही है, यदि आप वर्ष निर्धारित करते हैं, तो अन्य क्षेत्र अपरिवर्तित रहते हैं।
ख़तरा
कई मामलों में, यह कोड स्निपेट अपने उद्देश्य को पूरा करता है, लेकिन ध्यान रखें कि तारीख / समय के दो महत्वपूर्ण हिस्से परिभाषित नहीं हैं।
- ,
(1974, 6, 2, 8, 0, 0)
मापदंडों की व्याख्या डिफ़ॉल्ट समयक्षेत्र के भीतर की जाती है, कहीं और परिभाषित की जाती है, - मिलीसेकंड को शून्य पर सेट नहीं किया जाता है, लेकिन कैलेंडर उदाहरण बनाए जाने के समय सिस्टम घड़ी से भरा जाता है।
Java 8 LocalDate और LocalDateTime ऑब्जेक्ट्स
दिनांक और LocalDate ऑब्जेक्ट को एक-दूसरे के बीच बिल्कुल परिवर्तित नहीं किया जा सकता है क्योंकि किसी दिनांक ऑब्जेक्ट किसी विशिष्ट दिन और समय दोनों का प्रतिनिधित्व करता है, जबकि एक LocalDate ऑब्जेक्ट में समय या समयक्षेत्र जानकारी नहीं होती है। हालांकि, यह दोनों के बीच परिवर्तित करने के लिए उपयोगी हो सकता है यदि आप केवल वास्तविक तिथि की जानकारी के बारे में परवाह करते हैं और समय की जानकारी नहीं।
लोकलडेट बनाता है
// Create a default date
LocalDate lDate = LocalDate.now();
// Creates a date from values
lDate = LocalDate.of(2017, 12, 15);
// create a date from string
lDate = LocalDate.parse("2017-12-15");
// creates a date from zone
LocalDate.now(ZoneId.systemDefault());
एक LocalDateTime बनाता है
// Create a default date time
LocalDateTime lDateTime = LocalDateTime.now();
// Creates a date time from values
lDateTime = LocalDateTime.of(2017, 12, 15, 11, 30);
// create a date time from string
lDateTime = LocalDateTime.parse("2017-12-05T11:30:30");
// create a date time from zone
LocalDateTime.now(ZoneId.systemDefault());
स्थानीय दिनांक और इसके विपरीत
Date date = Date.from(Instant.now());
ZoneId defaultZoneId = ZoneId.systemDefault();
// Date to LocalDate
LocalDate localDate = date.toInstant().atZone(defaultZoneId).toLocalDate();
// LocalDate to Date
Date.from(localDate.atStartOfDay(defaultZoneId).toInstant());
LocalDateTime को दिनांक और इसके विपरीत
Date date = Date.from(Instant.now());
ZoneId defaultZoneId = ZoneId.systemDefault();
// Date to LocalDateTime
LocalDateTime localDateTime = date.toInstant().atZone(defaultZoneId).toLocalDateTime();
// LocalDateTime to Date
Date out = Date.from(localDateTime.atZone(defaultZoneId).toInstant());
समय क्षेत्र और java.util.Date
एक java.util.Date
ऑब्जेक्ट में समय क्षेत्र की अवधारणा नहीं है।
- डेट के लिए टाइमजोन सेट करने का कोई तरीका नहीं है
- दिनांक ऑब्जेक्ट के समय क्षेत्र को बदलने का कोई तरीका नहीं है
-
new Date()
डिफ़ॉल्ट निर्माणकर्ता के साथ बनाई गई दिनांक ऑब्जेक्ट को सिस्टम डिफ़ॉल्ट समयक्षेत्र में वर्तमान समय के साथ प्रारंभ किया जाएगा
हालाँकि, किसी भिन्न समय क्षेत्र में java.text.SimpleDateFormat
का उपयोग करके दिनांक ऑब्जेक्ट द्वारा वर्णित समय में दिनांक द्वारा प्रदर्शित समय को प्रदर्शित करना संभव है:
Date date = new Date();
//print default time zone
System.out.println(TimeZone.getDefault().getDisplayName());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //note: time zone not in format!
//print date in the original time zone
System.out.println(sdf.format(date));
//current time in London
sdf.setTimeZone(TimeZone.getTimeZone("Europe/London"));
System.out.println(sdf.format(date));
आउटपुट:
Central European Time
2016-07-21 22:50:56
2016-07-21 21:50:56
Convert java.util.Date to java.sql.Date
java.util.Date
to java.sql.Date
रूपांतरण आमतौर पर आवश्यक होता है जब किसी डेटाबेस में एक दिनांक ऑब्जेक्ट को लिखा जाना चाहिए।
java.sql.Date
मिलीसेकंड मान के आसपास एक आवरण है और SQL DATE
प्रकार की पहचान करने के लिए JDBC
द्वारा उपयोग किया जाता है
नीचे दिए गए उदाहरण में, हम java.util.Date()
कंस्ट्रक्टर का उपयोग करते हैं, जो एक दिनांक ऑब्जेक्ट बनाता है और इसे निकटतम मिलीसेकंड में समय का प्रतिनिधित्व करने के लिए प्रारंभ करता है। इस तिथि को java.sql.Date
ऑब्जेक्ट को वापस करने के लिए convert(java.util.Date utilDate)
विधि में उपयोग किया जाता है
उदाहरण
public class UtilToSqlConversion {
public static void main(String args[])
{
java.util.Date utilDate = new java.util.Date();
System.out.println("java.util.Date is : " + utilDate);
java.sql.Date sqlDate = convert(utilDate);
System.out.println("java.sql.Date is : " + sqlDate);
DateFormat df = new SimpleDateFormat("dd/MM/YYYY - hh:mm:ss");
System.out.println("dateFormated date is : " + df.format(utilDate));
}
private static java.sql.Date convert(java.util.Date uDate) {
java.sql.Date sDate = new java.sql.Date(uDate.getTime());
return sDate;
}
}
उत्पादन
java.util.Date is : Fri Jul 22 14:40:35 IST 2016
java.sql.Date is : 2016-07-22
dateFormated date is : 22/07/2016 - 02:40:35
java.util.Date
में तारीख और समय दोनों की जानकारी होती है, जबकि java.sql.Date
केवल तारीख की जानकारी होती है
स्थानीय समय
किसी दिनांक के स्थानीय समय का उपयोग करने के लिए स्थानीय समय का उपयोग करें। आप कुछ तरीकों से लोकल टाइम ऑब्जेक्ट को इंस्टेंट कर सकते हैं
-
LocalTime time = LocalTime.now();
-
time = LocalTime.MIDNIGHT;
-
time = LocalTime.NOON;
-
time = LocalTime.of(12, 12, 45);
LocalTime
में एक अंतर्निहित LocalTime
विधि भी है जो प्रारूप को बहुत अच्छी तरह से प्रदर्शित करती है।
System.out.println(time);
आप लोकल टाइम ऑब्जेक्ट से घंटे, मिनट, सेकंड, और नैनोसेकंड को भी जोड़ या घटा सकते हैं
time.plusMinutes(1);
time.getMinutes();
time.minusMinutes(1);
आप इसे निम्न कोड के साथ दिनांक ऑब्जेक्ट में बदल सकते हैं:
LocalTime lTime = LocalTime.now();
Instant instant = lTime.atDate(LocalDate.of(A_YEAR, A_MONTH, A_DAY)).
atZone(ZoneId.systemDefault()).toInstant();
Date time = Date.from(instant);
यह वर्ग एक अलार्म घड़ी का अनुकरण करने के लिए एक टाइमर कक्षा के भीतर बहुत अच्छी तरह से काम करता है।