1. Dateவகுப்பு மற்றும் யூனிக்ஸ் நேரம்

ஜாவாவின் தொடக்கத்திலிருந்தே, மொழியானது நேரம் மற்றும் தேதிகளுடன் வேலை செய்வதற்கு ஒரு சிறப்பு வகுப்பைக் கொண்டுள்ளது - Date. Dateகாலப்போக்கில், தேதிகளுடன் பணிபுரிய இன்னும் பல வகுப்புகள் தோன்றின, ஆனால் புரோகிராமர்கள் இன்றும் வகுப்பைப் பயன்படுத்துகின்றனர் .

இது மிகவும் எளிமையானது மற்றும் வசதியானது என்பதே இதற்குக் காரணம். ஒரு புரோகிராமராக, எந்தவொரு உண்மையான திட்டத்திலும் நீங்கள் நிச்சயமாக அதை சந்திப்பீர்கள். அதைப் பயன்படுத்தலாமா வேண்டாமா என்பது உங்கள் விருப்பம், ஆனால் நீங்கள் அதை அறிந்து கொள்ள வேண்டும். எனவே உங்கள் பொன்னான நேரத்தின் சில நிமிடங்களைக் கொடுங்கள்.

வகுப்பை மிகவும் சிறப்பாக ஆக்குவது எது Date? அதன் எளிமை.

ஜனவரி 1, 1970 இல் இருந்து கடந்த மில்லி விநாடிகளின் எண்ணிக்கையாக தேதி மற்றும் நேரத் தகவலை வகுப்பில் Dateசேமிக்கிறது. அது நிறைய மில்லி விநாடிகள், எனவே அவற்றைச் சேமிக்க வகை பயன்படுத்தப்படுகிறது.long

சுவாரஸ்யமானது.

குறிப்பாக 1970 முதல் ஏன்? இது யுனிக்ஸ் நேரம் என்று அழைக்கப்படுகிறது : அனைத்து நவீன இயக்க முறைமைகளின் தாத்தாவான யூனிக்ஸ் இயக்க முறைமை நேரத்தை எவ்வாறு பராமரிக்கிறது.

ஆனால் இரண்டு தேதிகளுக்கு இடையில் எவ்வளவு நேரம் கடந்துவிட்டது என்பதை நீங்கள் மிக எளிதாகக் கண்டறியலாம்: ஒரு தேதியை மற்றொன்றிலிருந்து கழித்தால் போதும், தேதிகளுக்கு இடையே உள்ள நேர வித்தியாசத்தை அருகிலுள்ள மில்லி விநாடிக்கு நீங்கள் பெறுவீர்கள்.

வகுப்பில் பணியாற்றுவதற்கான சில பயனுள்ள எடுத்துக்காட்டுகள் இங்கே Date.


2. தற்போதைய தேதியைப் பெறுதல்

தற்போதைய நேரத்தையும் தேதியையும் பெற, ஒரு Dateபொருளை உருவாக்கவும். ஒவ்வொரு புதிய பொருளும் அது உருவாக்கப்பட்ட நேரத்தை சேமிக்கிறது. இது மிகவும் எளிமையானதாக தோன்றுகிறது:

Date current = new Date();

இந்த கட்டளையை இயக்கிய பிறகு, currentமாறி உருவாக்கப்பட்ட பொருளின் குறிப்பைச் சேமிக்கும் Date, இது உருவாக்கப்பட்ட நேரத்தை உள்நாட்டில் சேமிக்கும் - ஜனவரி 1, 1970 முதல் கடந்த மில்லி விநாடிகளின் எண்ணிக்கை.

திரையில் தற்போதைய தேதியைக் காட்டுகிறது

தற்போதைய தேதியைக் காட்ட, எளிமையாக: a) ஒரு புதிய Dateபொருளை உருவாக்கவும், b) முறையைப் பயன்படுத்தி திரையில் அச்சிடவும் System.out.println().

உதாரணமாக:

குறியீடு கன்சோல் வெளியீடு
Date current = new Date();
System.out.println(current);
Thu Feb 21 14:01:34 EET 2019

கன்சோல் வெளியீடு என்றால் என்ன என்பது இங்கே:

உரை விளக்கம்
வியாழன் கிழமை வியாழன்
பிப்ரவரி ரூரி 21 பிப்ரவரி 21
14:01:34 மணிநேரம்: நிமிடங்கள்: வினாடிகள்
EET நேர மண்டலம்: கிழக்கு ஐரோப்பிய நேரம்
2019 ஆண்டு

3. குறிப்பிட்ட தேதியை அமைத்தல்

Dateதற்போதைய நேரத்தை எவ்வாறு பெறுவது என்பதை நாங்கள் கண்டுபிடித்தோம், ஆனால் வேறு தேதி அல்லது நேரத்தைச் சேமிக்கும் ஒரு பொருளை எவ்வாறு உருவாக்குவது ?

மீண்டும், இங்கே எல்லாம் எளிது. ஒரு குறிப்பிட்ட தேதியை அமைக்க, நீங்கள் இது போன்ற குறியீட்டை எழுத வேண்டும்:

Date birthday = new Date(year, month, day);

எல்லாம் எளிமையானது மற்றும் வெளிப்படையானது, ஆனால் தெரிந்து கொள்ள வேண்டிய இரண்டு நுணுக்கங்கள் உள்ளன:

  1. ஆண்டு 1900 இல் இருந்து கணக்கிடப்பட வேண்டும்.
  2. மாதங்கள் பூஜ்ஜியத்திலிருந்து எண்ணப்படுகின்றன.
சுவாரஸ்யமானது.

இது யூனிக்ஸ் இயக்க முறைமையின் மற்றொரு மரபு: யூனிக்ஸ் இல், புரோகிராமர்கள் இரண்டு இலக்கங்களைப் பயன்படுத்தி ஆண்டைக் குறிக்கின்றனர். 1977க்கு பதிலாக 77 என்று எளிமையாக எழுதினார்கள். எனவே 1900ல் இருந்து கணக்கிட்டால் 77 தான் சரியான ஆண்டு.

உதாரணமாக, நான் மார்ச் 21, 1989 இல் பிறந்தேன். மார்ச் மூன்றாவது மாதம், எனவே நான் எழுத வேண்டும்:

குறியீடு கன்சோல் வெளியீடு
Date current = new Date(89, 2, 21);
System.out.println(current);
Tue Mar 21 00:00:00 EET 1989

மாதங்கள் பூஜ்ஜியத்தில் இருந்து எண்ணப்படுகின்றன, ஆனால் நாட்கள் இல்லை அது கொஞ்சம் விசித்திரமானது, இல்லையா?

உண்மையான புரோகிராமர்கள் மேலோங்கி, மாதத்தின் நாட்களையும் பூஜ்ஜியத்தில் இருந்து எண்ணியிருக்க வேண்டும் என்று நாங்கள் நினைக்கிறோம். ஓ, இந்த இணக்கவாதிகள் 🙂

ஒரு குறிப்பிட்ட நேரத்தை அமைத்தல்

ஒரு குறிப்பிட்ட நேரத்தை அமைப்பதும் மிகவும் எளிதானது: இதற்காக, நீங்கள் இது போன்ற ஒரு அறிக்கையை எழுத வேண்டும்:

Date birthday = new Date(year, month, day, hour, minutes, seconds);

மணிநேரம், நிமிடங்கள் மற்றும் வினாடிகள் பூஜ்ஜியத்திலிருந்து எண்ணப்படுகின்றன: உங்களுக்குள் இருக்கும் புரோகிராமர் நிம்மதிப் பெருமூச்சு விடட்டும்.

உதாரணமாக:

குறியீடு கன்சோல் வெளியீடு
Date current = new Date(105, 5, 4, 12, 15, 0);
System.out.println(current);
Sat Jun 04 12:15:00 EEST 2005

நேரம் 12:15 மற்றும் தேதி ஜூன் 4, 2005 . புரோகிராமர் அல்லாதவர்களுக்கு இதைப் படிப்பது கொஞ்சம் கடினம், ஆனால் அது சரியாக வேலை செய்கிறது.


4. ஒரு தேதியின் கூறுகளுடன் வேலை செய்தல்

Dateஒரு பொருளைக் காண்பிப்பதை விட அதைக் கொண்டு நீங்கள் பலவற்றைச் செய்யலாம் . உள்நாட்டில் சேமிக்கப்பட்ட தேதியின் தனிப்பட்ட கூறுகளைப் பெற உங்களை அனுமதிக்கும் முறைகள் இதில் உள்ளன :

முறை விளக்கம்
int getYear()
1900 உடன் தொடர்புடைய தேதியின் ஆண்டை வழங்குகிறது.
int getMonth()
தேதியின் மாதத்தை வழங்குகிறது (மாதங்கள் பூஜ்ஜியத்திலிருந்து எண்ணப்படுகின்றன)
int getDate()
மாதத்தின் நாள் திரும்பும்
int getDay()
வாரத்தின் நாள் திரும்பும்
int getHours()
மணிநேரத்தைத் திருப்பித் தருகிறது
int getMinutes()
நிமிடங்களைத் திருப்பித் தருகிறது
int getSeconds()
வினாடிகளைத் திருப்பித் தருகிறது

உதாரணமாக:

குறியீடு கன்சோல் வெளியீடு குறிப்பு
Date current = new Date(105, 5, 4, 12, 15, 0);
System.out.println(current.getYear());
System.out.println(current.getMonth());
System.out.println(current.getDate());
System.out.println(current.getDay());

105
5
4
6

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.

உதாரணமாக:

குறியீடு
Date current = new Date(105, 5, 4, 12, 15, 0);
SimpleDateFormat formatter = new SimpleDateFormat("MMM-dd-YYYY");
String message = formatter.format(current);
System.out.println(message);
கன்சோல் வெளியீடு
Jun-04-2005

நிரல் காட்டப்பட்டதைப் பாருங்கள்: 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");

மற்ற பாடங்களில் சரங்களின் பாகுபடுத்தலை இன்னும் விரிவாகக் கருதுவோம் .