1. Date
वर्ग आणि युनिक्स वेळ
जावाच्या सुरुवातीपासूनच, वेळ आणि तारखांसह काम करण्यासाठी भाषेचा एक विशेष वर्ग आहे — Date
. Date
कालांतराने, तारखांसह कार्य करण्यासाठी आणखी बरेच वर्ग दिसू लागले, परंतु प्रोग्रामर आजही वर्ग वापरत आहेत .
हे खूप सोपे आणि सोयीस्कर असल्यामुळे आहे. आणि प्रोग्रामर म्हणून, आपण निश्चितपणे कोणत्याही वास्तविक प्रकल्पात याचा सामना कराल. ते वापरायचे की नाही हे तुमची निवड आहे, परंतु तुम्हाला ते माहित असणे आवश्यक आहे. त्यामुळे तुमच्या मौल्यवान वेळेतील काही मिनिटे द्या.
वर्ग इतका चांगला कशामुळे होतो Date
? त्याचा साधेपणा.
1 जानेवारी, 1970 पासून निघून गेलेल्या मिलीसेकंदांची संख्या म्हणून वर्ग Date
तारीख आणि वेळ माहिती संग्रहित करतो. ते खूप मिलिसेकंद आहे, म्हणून ते संग्रहित करण्यासाठी प्रकार वापरला जातो.long
विशेषतः 1970 पासून का? याला तथाकथित युनिक्स वेळ म्हणतात: सर्व आधुनिक ऑपरेटिंग सिस्टीमची आजोबा असलेली युनिक्स ऑपरेटिंग सिस्टम वेळ कशी राखते.
परंतु दोन तारखांमध्ये किती वेळ निघून गेला हे तुम्ही सहज शोधू शकता: फक्त एक तारखेपासून दुसरी वजा करा आणि तुम्हाला तारखांमधील वेळेचा फरक जवळच्या मिलिसेकंदपर्यंत मिळेल.
वर्गासोबत काम करण्याची काही उपयुक्त उदाहरणे येथे आहेत Date
.
2. वर्तमान तारीख मिळवणे
वर्तमान वेळ आणि तारीख मिळविण्यासाठी, फक्त एक Date
ऑब्जेक्ट तयार करा. प्रत्येक नवीन वस्तू जेव्हा ती तयार केली गेली तेव्हाची वेळ साठवते. हे अगदी सोपे दिसते:
Date current = new Date();
ही कमांड कार्यान्वित केल्यानंतर, current
व्हेरिएबल तयार केलेल्या ऑब्जेक्टचा संदर्भ संग्रहित करेल Date
, जे त्याच्या निर्मितीची वेळ अंतर्गत संग्रहित करेल - 1 जानेवारी, 1970 पासून निघून गेलेल्या मिलीसेकंदांची संख्या.
स्क्रीनवर वर्तमान तारीख प्रदर्शित करत आहे
वर्तमान तारीख प्रदर्शित करण्यासाठी, फक्त: अ) एक नवीन Date
ऑब्जेक्ट तयार करा, ब) पद्धत वापरून स्क्रीनवर प्रिंट करा System.out.println()
.
उदाहरण:
कोड | कन्सोल आउटपुट |
---|---|
|
|
कन्सोल आउटपुटचा अर्थ काय आहे ते येथे आहे:
मजकूर | व्याख्या |
---|---|
गुरुवार rsday | गुरुवार |
21 फेब्रुवारी | 21 फेब्रुवारी |
14:01:34 | तास: मिनिटे: सेकंद |
EET | वेळ क्षेत्र: पूर्व युरोपियन वेळ |
2019 | वर्ष |
3. विशिष्ट तारीख सेट करणे
Date
वर्तमान वेळ कशी मिळवायची हे आम्ही शोधून काढले, परंतु भिन्न तारीख किंवा वेळ संग्रहित करणारी वस्तू कशी तयार करावी ?
पुन्हा, येथे सर्वकाही सोपे आहे. विशिष्ट तारीख सेट करण्यासाठी, तुम्हाला खालीलप्रमाणे कोड लिहावा लागेल:
Date birthday = new Date(year, month, day);
सर्व काही सोपे आणि स्पष्ट आहे, परंतु त्याबद्दल दोन बारकावे आहेत:
- वर्ष 1900 पासून मोजले पाहिजे.
- महिन्यांची संख्या शून्यातून केली जाते.
युनिक्स ऑपरेटिंग सिस्टमचा हा आणखी एक वारसा आहे: युनिक्सवर, प्रोग्रामर दोन अंक वापरून वर्ष दर्शवतात. 1977 च्या ऐवजी, त्यांनी फक्त 77 लिहिले. म्हणून आपण 1900 पासून मोजले तर 77 हे योग्य वर्ष आहे.
उदाहरणार्थ, माझा जन्म 21 मार्च 1989 रोजी झाला. मार्च हा तिसरा महिना आहे, म्हणून मला लिहायचे आहे:
कोड | कन्सोल आउटपुट |
---|---|
|
|
महिने शून्यातून मोजले जातात, परंतु दिवस नाहीत हे थोडे विचित्र आहे, बरोबर?
आम्हाला वाटते की खरे प्रोग्रामर प्रचलित असले पाहिजेत आणि त्यांनी महिन्याचे दिवस शून्यातून देखील मोजले पाहिजेत. अरे, हे अनुरूपवादी 🙂
विशिष्ट वेळ सेट करणे
विशिष्ट वेळ सेट करणे देखील अगदी सोपे आहे: यासाठी, आपल्याला असे विधान लिहावे लागेल:
Date birthday = new Date(year, month, day, hour, minutes, seconds);
तास, मिनिटे आणि सेकंद शून्यातून मोजले जातात: तुमच्या आतल्या प्रोग्रामरला सुटकेचा नि:श्वास सोडू द्या.
उदाहरण:
कोड | कन्सोल आउटपुट |
---|---|
|
|
आम्ही वेळ 12:15 आणि तारीख 4 जून 2005 सेट केली . नॉन-प्रोग्रामरसाठी हे वाचणे थोडे कठीण आहे, परंतु ते जसे पाहिजे तसे कार्य करते.
4. तारखेच्या घटकांसह कार्य करणे
Date
तुम्ही एखादी वस्तू दाखवण्यापेक्षा अधिक काही करू शकता . यात अशा पद्धती आहेत ज्या तुम्हाला अंतर्गत संग्रहित तारखेचे वैयक्तिक घटक मिळवू देतात:
पद्धत | वर्णन |
---|---|
|
1900 च्या सापेक्ष तारखेचे वर्ष मिळवते. |
|
तारखेचा महिना मिळवतो (महिने शून्यातून क्रमांकित केले जातात) |
|
महिन्याचा दिवस परत करतो |
|
आठवड्याचा दिवस परत करतो |
|
तास परत करतो |
|
मिनिटे परत करते |
|
सेकंद परत करते |
उदाहरण:
कोड | कन्सोल आउटपुट | नोंद |
---|---|---|
|
|
2005 जून महिन्याचा दिवस शनिवार |
तसे, एखादी Date
वस्तू आपल्याला केवळ तारखेचे वैयक्तिक घटक मिळवू देत नाही तर ते बदलू देते:
पद्धत | वर्णन |
---|---|
void setYear(int year) |
तारखेचे वर्ष बदलते. वर्ष 1900 च्या तुलनेत सूचित केले आहे. |
void setMonth(int month) |
तारखेचा महिना बदलतो (महिने शून्यातून क्रमांकित केले जातात) |
void setDate(int date) |
महिन्याचा दिवस बदलतो |
void setHours(int hours) |
तास बदलतो |
void setMinutes(int minutes) |
मिनिटे बदलते |
void setSeconds(int seconds) |
सेकंद बदलतो |
5. मिलीसेकंद
आम्ही आधी म्हटल्याप्रमाणे, Date
ऑब्जेक्ट 1 जानेवारी, 1970 पासून निघून गेलेल्या मिलीसेकंदांची संख्या संग्रहित करते.
आम्हाला त्या नंबरची आवश्यकता असल्यास, आम्ही ते ऑब्जेक्टवरून मिळवू शकतो Date
:
long time = date.getTime();
पद्धत getTime()
ऑब्जेक्टमध्ये संग्रहित मिलीसेकंदांची संख्या परत करते Date
.
तुम्ही केवळ मिलिसेकंदांची संख्याच मिळवू शकत नाही, तर तुम्ही ती संख्या विद्यमान ऑब्जेक्टमध्ये बदलू शकता:
Date date = new Date();
date.setTime(1117876500000L);
तसे, आपण ऑब्जेक्ट Date
तयार केल्यावर योग्य वेळ देऊन हे अधिक संक्षिप्तपणे लिहू शकता:
Date date = new Date(1117876500000L);
6. तारखांची तुलना करणे
जर तुम्हाला दोन तारखांची तुलना करायची असेल आणि कोणती पहिली आली हे शोधायचे असेल तर तुमच्याकडे तीन पर्याय आहेत
पहिला मार्ग म्हणजे ते प्रत्येकाने किती मिलीसेकंद संग्रहित करतात त्यांची तुलना करणे:
if (date1.getTime() < date2.getTime())
दुसरा मार्गbefore()
म्हणजे ऑब्जेक्टची पद्धत वापरणे Date
:
if (date1.before(date2))
हे असे वाचते: जर date1
आधी आला असेल date2
तर ...
तिसरा मार्गafter()
म्हणजे ऑब्जेक्टची पद्धत वापरणे Date
:
if (date2.after(date1))
हे असे वाचते: जर date2
नंतर असेल date1
तर...
7. DateFormat
वर्ग
लक्षात ठेवा, जेव्हा आम्ही स्क्रीनवर तारीख प्रदर्शित केली तेव्हा आम्हाला असे काहीतरी दिसले: Thu Feb 21 14:01:34 EET 2019
. सर्व काही बरोबर आहे असे दिसते, परंतु सामान्य मानवांपेक्षा प्रोग्रामरसाठी तारीख कशी प्रदर्शित केली जाईल याचे स्वरूप अधिक आहे. आम्ही वापरकर्त्यांसाठी तारीख अधिक स्पष्टपणे प्रदर्शित करू इच्छितो. असे काहीतरी Tuesday, February 21
.
आणि वर्षाशिवाय. किंवा आवश्यक असल्यास एका वर्षासह. सर्वसाधारणपणे, आम्ही तारीख वेगवेगळ्या प्रकारे प्रदर्शित करू इच्छितो.
यासाठी एक विशेष वर्ग आहे: SimpleDateFormat
.
उदाहरण:
कोड |
---|
|
कन्सोल आउटपुट |
|
प्रोग्रामने काय प्रदर्शित केले ते पहा: Jun-04-2005
. पूर्वी जे असायचे ते मुळीच नाही.
फरक हा आहे की आम्ही ऑब्जेक्ट स्वतः प्रदर्शित केला नाही , परंतु ऑब्जेक्टवर मेथड Date
कॉल करून प्राप्त केलेली एक विशेष स्ट्रिंग दर्शविली आहे . पण तोही इथे मुख्य मुद्दा नाही.format()
SimpleDateFormat
ऑब्जेक्ट तयार झाल्यावर , आम्ही पॅरामीटर म्हणून SimpleDateFormat
स्ट्रिंगमध्ये पास केले . "MMM-dd-YYYY"
ही स्ट्रिंग आहे जी आम्ही शेवटी कन्सोल आउटपुटमध्ये पाहिलेली तारीख स्वरूप दर्शवते.
- MMM महिन्याचे नाव दाखवण्यासाठी सूचित करते, तीन अक्षरे वापरून संक्षिप्त
- dd महिन्याचा दिवस प्रदर्शित करण्यासाठी सूचित करते
- YYYY चार अंकांचा वापर करून वर्ष दाखवण्यासाठी सूचित करतो
जर आपल्याला महिन्याला संख्या म्हणून आउटपुट करायचे असेल, तर त्याऐवजी MMM
आपल्याला लिहावे लागेल MM
, जे पॅटर्न देईल "MM-dd-YYYY"
. स्क्रीन आउटपुट असेल06-04-2005
या वर्गावर आपण नंतर अधिक तपशीलवार चर्चा करू.
8. Date.parse
पद्धत
वर्ग Date
आणखी काही मनोरंजक आणि उपयुक्त करू शकतो — त्याला स्ट्रिंगवरून तारीख मिळू शकते. किंवा, प्रोग्रामर म्हणतात त्याप्रमाणे, ते स्ट्रिंगचे विश्लेषण करू शकते.
parse()
त्यासाठी खास पद्धत आहे . पार्सिंग असे दिसते:
Date date = new Date();
date.setTime( Date.parse("Jul 06 12:15:00 2019") );
तसे, हा कोड अधिक संक्षिप्तपणे लिहिला जाऊ शकतो:
Date date = new Date("Jul 06 12:15:00 2019");
आम्ही इतर धड्यांमध्ये स्ट्रिंगच्या पार्सिंगचा अधिक तपशीलवार विचार करू.