1. తేదీ సమయ APIని పరిచయం చేస్తోంది

తేదీ సమయ APIని పరిచయం చేస్తున్నాము

జావా సృష్టికర్తలు తేదీ మరియు క్యాలెండర్ తరగతులతో పరిస్థితిని ఇష్టపడలేదు. వారు వారి రోజులో మంచివారు, కానీ కాలం మారుతోంది. మరియు సరళమైన, శక్తివంతమైన మరియు నమ్మదగినది అవసరమైనది. మరియు జావా 8 విడుదలతో (15 సంవత్సరాల తర్వాత Calendarకనిపించింది), జావా డేట్ టైమ్ API పరిచయం చేయబడింది. ఇది సమయంతో వ్యవహరించే ప్రతి పనిని పరిష్కరించగల తరగతుల సమితి.

చాలా తరగతులు ఉన్నాయి, అవి అనేక ప్యాకేజీలుగా విభజించబడ్డాయి:

ప్యాకేజీ జావా తేదీ సమయ API కోసం బేస్ ప్యాకేజీ: ఇది , , , , మరియు java.timeవంటి తరగతులను కలిగి ఉంటుంది . ఈ తరగతుల యొక్క అన్ని వస్తువులు , అంటే వాటిని సృష్టి తర్వాత మార్చలేము.LocalDateLocalTimeLocalDateTimeInstantPeriodDurationimmutable

ప్యాకేజీ java.time.formatసమయ ఫార్మాటింగ్ కోసం తరగతులను కలిగి ఉంది, అనగా సమయాలను (మరియు తేదీలను) స్ట్రింగ్‌లుగా మార్చడం మరియు వైస్ వెర్సా. ఉదాహరణకు, ఇది తరగతిని DateTimeFormatterభర్తీ చేసే బహుముఖ తరగతిని కలిగి ఉంటుంది SimpleDateFormat.

ప్యాకేజీ java.time.zoneసమయ మండలాలతో పని చేయడానికి తరగతులను కలిగి ఉంది. TimeZoneఇది మరియు వంటి తరగతులు ఉన్నాయి ZonedDateTime. మీరు ప్రపంచంలోని వివిధ ప్రాంతాల్లో ఉన్న క్లయింట్‌ల కోసం సర్వర్ కోడ్‌ని వ్రాస్తున్నట్లయితే, మీకు నిజంగా ఈ తరగతులు అవసరం.


2. LocalDateతరగతి

మేము చూసే తేదీ సమయ API నుండి మొదటి మరియు అత్యంత ఉపయోగకరమైన తరగతి తరగతి LocalDate. మీరు బహుశా దాని పేరు నుండి ఊహించినట్లుగా, ఈ తరగతి తేదీలతో పని చేయడానికి రూపొందించబడింది.

ఈ తరగతి యొక్క వస్తువులు సృష్టించబడిన తర్వాత మారవు, అనగా తరగతి LocalDateమారదు. కానీ ఈ ఆస్తి తరగతికి సరళత మరియు విశ్వసనీయతను జోడిస్తుంది. ప్రత్యేకించి అనేక థ్రెడ్‌లు (ఎగ్జిక్యూషన్ థ్రెడ్‌లు) ఒకే సమయంలో అటువంటి వస్తువుతో పరస్పర చర్య చేస్తుంటే.

కొత్త వస్తువును సృష్టించడానికి LocalDate, మీరు స్టాటిక్ పద్ధతుల్లో ఒకదాన్ని ఉపయోగించాలి. ఇక్కడ ప్రధానమైన వాటి జాబితా ఉంది.

ప్రస్తుత తేదీని పొందుతోంది

ప్రస్తుత తేదీని పొందడానికి, మీరు స్టాటిక్ పద్ధతిని ఉపయోగించాలి now(). ఇది కనిపించే దానికంటే చాలా సులభం:

LocalDate today = LocalDate.now();

వేరియబుల్ ఎక్కడ todayఉంది LocalDateమరియు క్లాస్ యొక్క LocalDate.now()స్టాటిక్ మెథడ్‌కి కాల్ .now()LocalDate

ఉదాహరణ:

కోడ్ కన్సోల్ అవుట్‌పుట్
LocalDate today = LocalDate.now();
System.out.println("Today = " + today);

Today = 2019-02-22

నిర్దిష్ట సమయ మండలంలో తేదీని పొందడం

నిర్దిష్ట సమయ మండలంలో ప్రస్తుత తేదీని పొందడానికి మిమ్మల్ని అనుమతించే పద్ధతి LocalDateయొక్క వైవిధ్యాన్ని తరగతి కూడా కలిగి ఉంది .now(ZoneId)

దీన్ని చేయడానికి, మనకు మరొక తరగతి అవసరం - ZoneIdతరగతి (java.time.ZoneId). ఇది టైమ్ జోన్ పేరును అందించిన వస్తువును of()తిరిగి ఇచ్చే పద్ధతిని కలిగి ఉంది.ZoneId

షాంఘైలో ప్రస్తుత తేదీని నిర్ణయించడానికి, మీరు క్రింది కోడ్‌ను వ్రాయాలి:

కోడ్ కన్సోల్ అవుట్‌పుట్
ZoneId  timezone = ZoneId.of("Asia/Shanghai");
LocalDate today = LocalDate.now(timezone);
System.out.println("In Shanghai, now = " + today);


In Shanghai, now = 2019-02-22

మీరు ఇంటర్నెట్‌లో అన్ని సమయ మండలాల పేర్ల జాబితాను కనుగొనవచ్చు.


3. నిర్దిష్ట తేదీని పొందడం

నిర్దిష్ట తేదీని సూచించే వస్తువును పొందడానికి LocalDate, మీరు స్టాటిక్ పద్ధతిని ఉపయోగించాలి of(). ఇక్కడ ప్రతిదీ కూడా చాలా సులభం మరియు స్పష్టంగా ఉంది:

LocalDate date = LocalDate.of(2019, Month.FEBRUARY, 22);

వేరియబుల్ ఎక్కడ dateఉంది LocalDateమరియు క్లాస్ యొక్క స్టాటిక్ మెథడ్‌కి కాల్ .LocalDate.of()of()LocalDate

ఫిబ్రవరిని నెలగా పేర్కొనడానికి తరగతి FEBRUARYస్థిరాంకం (java.time.Month) ఉపయోగించబడడాన్ని మనం ఇక్కడ చూస్తాము .Month

మీరు పాత పద్ధతిలో నెలను కూడా నిర్దేశించవచ్చు — సంఖ్యను ఉపయోగించి:

LocalDate date = LocalDate.of(2019, 2, 22);

రెండు? ఫిబ్రవరికి బదులుగా? అంటే నెలలు మళ్లీ ఒకటి నుండి లెక్కించబడుతున్నాయా?

అవును, జావా సృష్టించిన దాదాపు 20 సంవత్సరాల తర్వాత, సున్నా నుండి నెలలు లెక్కించబడటం ఆగిపోయింది.

ఉదాహరణ:

కోడ్ కన్సోల్ అవుట్‌పుట్
LocalDate today = LocalDate.of(2019, 2, 22);
System.out.println("Today = " + today);

Today = 2019-02-22

రోజు సూచిక ద్వారా తేదీని పొందడం

తేదీని సృష్టించడానికి మరొక ఆసక్తికరమైన మార్గం ఉంది: ofYearDayపద్ధతిని ఉపయోగించి, మీరు సంవత్సరం సంఖ్య మరియు సంవత్సరంలోని రోజు సూచిక ఆధారంగా మాత్రమే తేదీని పొందవచ్చు. ఇక్కడ సాధారణ ప్రదర్శన ఉంది:

LocalDate date = LocalDate.ofYearDay(year, day);

yearసంవత్సరం సంఖ్య మరియు dayసంవత్సరంలో రోజు సూచిక ఎక్కడ ఉంది.

ఉదాహరణ:

కోడ్ కన్సోల్ అవుట్‌పుట్
LocalDate today = LocalDate.ofYearDay(2019, 100);
System.out.println("Today = " + today);

Today = 2019-04-10

2019 100వ రోజు ఏప్రిల్ 10.

Unix తేదీని పొందుతోంది

Dateజనవరి 1, 1970 నుండి వస్తువులు ఎల్లప్పుడూ సమయాన్ని మిల్లీసెకన్ల సంఖ్యగా నిల్వ చేశాయని మీకు గుర్తుందా ? ప్రోగ్రామర్లు మంచి పాత రోజులను కోల్పోరని నిర్ధారించుకోవడానికి, LocalDateతరగతికి ఒక ofEpochDay()పద్ధతి వచ్చింది, ఇది జనవరి 1, 1970 నుండి లెక్కించబడిన తేదీని అందిస్తుంది. సాధారణ ప్రదర్శన ఇక్కడ ఉంది:

LocalDate date = LocalDate.ofEpochDay(day);

dayజనవరి 1, 1970 నుండి గడిచిన రోజుల సంఖ్య ఎక్కడ ఉంది.

ఉదాహరణ:

కోడ్ కన్సోల్ అవుట్‌పుట్
LocalDate today = LocalDate.ofEpochDay(1);
System.out.println("Today = " + today);

Today = 1970-01-02

4. తేదీ యొక్క మూలకాలను పొందడం

వస్తువులను మార్చడం అసాధ్యం LocalDate, కానీ మీరు నిల్వ చేసిన తేదీ యొక్క వ్యక్తిగత అంశాలను పొందవచ్చు. LocalDateవస్తువులు దీని కోసం అనేక పద్ధతులను కలిగి ఉన్నాయి:

పద్ధతి వివరణ
int getYear()
నిర్దిష్ట తేదీ యొక్క సంవత్సరాన్ని అందిస్తుంది
Month getMonth()
తేదీ యొక్క నెలను అందిస్తుంది: అనేక స్థిరాంకాలలో ఒకటి
JANUARY, FEBRUARY, ...;
int getMonthValue()
తేదీ యొక్క నెల సూచికను అందిస్తుంది. జనవరి == 1.
int getDayOfMonth()
నెలలోని రోజు సూచికను అందిస్తుంది
int getDayOfYear()
సంవత్సరం ప్రారంభం నుండి రోజు సూచికను అందిస్తుంది
DayOfWeek getDayOfWeek()
వారంలోని రోజును అందిస్తుంది: అనేక స్థిరాంకాలలో ఒకటి
MONDAY, TUESDAY, ...;
IsoEra getEra()
యుగాన్ని అందిస్తుంది: BCE(ప్రస్తుత యుగానికి ముందు) మరియు CE(ప్రస్తుత యుగం)

ఉదాహరణ:

కోడ్ కన్సోల్ అవుట్‌పుట్
LocalDate today = LocalDate.now();
System.out.println(today.getYear());
System.out.println(today.getMonth());
System.out.println(today.getMonthValue());
System.out.println(today.getDayOfMonth());
System.out.println(today.getDayOfWeek());

2019
FEBRUARY
2
22
FRIDAY

LocalDate5. వస్తువులో తేదీని మార్చడం

తరగతి LocalDateతేదీలతో పని చేయడానికి మిమ్మల్ని అనుమతించే అనేక పద్ధతులను కలిగి ఉంది. ఈ పద్ధతుల అమలు తరగతి యొక్క పద్ధతులకు సారూప్యంగా ఉంటుంది String: అవి ఇప్పటికే ఉన్న వస్తువును మార్చవు LocalDate, బదులుగా కావలసిన డేటాతో కొత్తదాన్ని తిరిగి ఇవ్వండి.

ఇక్కడ తరగతి పద్ధతులు ఉన్నాయి LocalDate:

పద్ధతి వివరణ
plusDays(int days)
తేదీకి పేర్కొన్న రోజుల సంఖ్యను జోడిస్తుంది
plusWeeks(int weeks)
తేదీకి వారాలను జోడిస్తుంది
plusMonths(int months)
తేదీకి నెలలను జోడిస్తుంది
plusYears(int years)
తేదీకి సంవత్సరాలను జోడిస్తుంది
minusDays(int days)
తేదీ నుండి రోజులను తీసివేస్తుంది
minusWeeks(int weeks)
తేదీ నుండి వారాలను తీసివేస్తుంది
minusMonths(int months)
తేదీ నుండి నెలలను తీసివేస్తుంది
minusYears(int years)
తేదీ నుండి సంవత్సరాలను తీసివేస్తుంది

ఉదాహరణ:

కోడ్ కన్సోల్ అవుట్‌పుట్
LocalDate birthday = LocalDate.of(2019, 2, 28);
LocalDate nextBirthday = birthday.plusYears(1);
LocalDate firstBirthday = birthday.minusYears(30);

System.out.println(birthday);
System.out.println(nextBirthday);
System.out.println(firstBirthday);




2019-02-28
2020-02-28
1989-02-28

మనం పిలిచే పద్ధతులు birthday objectమారవు. బదులుగా, దాని పద్ధతులు కావలసిన డేటాను కలిగి ఉన్న కొత్త వస్తువులను తిరిగి అందిస్తాయి.