java - 8 nye dato /tidspunkt api -

med java - 8, en ny dato tid api er indført for at dække følgende ulemper af gammel dato tid api - og minus,,,,, ikke tråd sikker − java.util.date er ikke tråd sikker, således at udviklere har at gøre med concurrency spørgsmål, mens de anvender dato.den nye dato, tidspunkt api er uforanderlige og ikke - setter metoder.,,,, dårlig udformning, og minus; standarddato starter fra 1900, måned starter fra 1, og i dag begynder fra 0, så ingen ensartethed.den gamle api havde mindre direkte metoder til dato operationer.den nye api indeholder talrige nyttige metoder til sådanne operationer.,,,, vanskelige tidszone, håndtering, − udviklere var nødt til at skrive en masse kode til at beskæftige sig med timezone spørgsmål.den nye api - er blevet udviklet holder domænespecifik design i tankerne.,,, java - 8, indfører en ny dato tid api - under - pakken, java. gang.følgende er nogle af de vigtigste arter, der er indført i java.time pakke &minus,,,,, lokale, &minus, forenklede dato tid api med nr. kompleksiteten af timezone håndtering.,,,, udlagt, og minus, specialiserede dato tid api - at håndtere forskellige timezones.,,, lokale data tid api, localdate /localtime og localdatetime klasser forenkle udviklingen, hvor timezones er ikke påkrævet.lad os se dem i aktion og minus;, java8tester.java, import java.time.localdate; import java.time.localtime; import java.time.localdatetime; import java.time.month; offentlige klasse java8tester {offentlige statisk tomrum vigtigste (string - args []) (java8tester java8tester = nye java8tester(); java8tester. testlocaldatetime();} offentlige tomrum testlocaldatetime() (//den aktuelle dato og tidspunkt localdatetime currenttime = localdatetime. now(); system. println ("nuværende datetime:" + currenttime); localdate dato1 = currenttime. tolocaldate(); system. println ("dato1:" + dato1); måned måned = currenttime. getmonth(); int dag = currenttime. getdayofmonth(); int sekunder = currenttime. getsecond(); system. println ("måned:" + måned + ":" + dag + "sekunder:" + sekunder) localdatetime date2 = currenttime. withdayofmonth (10). withyear (2012) system. println ("date2:" + date2); //12. december 2014 localdate dato3 = localdate. (2014 - month.december, 12) system. println ("dato3:" + dato3); //22 timers 15 minutter localtime date4 = localtime. (22, 15) system. println ("date4:" + date4); //analysere en - localtime - dato5 = localtime. analysere ("20:15:30"); system. println ("- dato5:" + - dato5)}}, kontrollere resultatet, udarbejdelse af klasse ved hjælp af, javac, de således − $javac java8tester.java, nu kører det java8tester som følger− $java java8tester, bør det få følgende output og minus;, nuværende datetime: 2014-12-09t11:00: 45.457 dato1: 2014-12-09 måned: decemberday: 9seconds: 45 date2: 2012-12-10t11:00: 45.457 dato3: 2014-12-12 date4: 22.15 - dato5: 20:15:30, udlagt data tid api, udlagt dato tid api skal anvendes, når tid zone der skal tages i betragtning.lad os se dem i aktion og minus;, java8tester.java, import java.time.zoneddatetime; import java.time.zoneid; offentlige klasse java8tester {offentlige statisk tomrum vigtigste (string - args []) (java8tester java8tester = nye java8tester(); java8tester. testzoneddatetime();} offentlige tomrum testzoneddatetime() (//den aktuelle dato og tidspunkt zoneddatetime dato1 = zoneddatetime analysere (". 2007-12-03t10:15:30 + 05:30 [asien /karachi]"); system. println ("dato1:" + dato1); zoneid id = zoneid. ("europa /paris"); system. println ("zoneid:" + id); zoneid currentzone = zoneid. systemdefault(). system. println ("currentzone:" + currentzone)}}, kontrollere resultatet, udarbejdelse af klasse ved hjælp af, javac, de således − $javac java8tester.java, nu kører det java8tester således − $java java8tester, bør det få følgende output og minus;, dato1: 2007-12-03t10:15:30 + kl. 05.00 [asien /karachi] zoneid: europa /paris currentzone: etc /utc - enheder, enum java.time.temporal.chronounit,,, enum indsættes i java - 8 til at erstatte hele værdier, der anvendes i gamle api til at repræsentere dag, måned osv. lad os se dem i aktion og minus;, java8tester.java, import java.time.localdate; import java.time.temporal.chronounit; offentlige klasse java8tester {offentlige statisk tomrum vigtigste (string - args []) (java8tester java8tester = nye java8tester(); java8tester. testchromounits();) offentlige tomrum testchromounits() (//- løbendet dato localdate i dag = localdate. now(); system. println ("nuværende dato:" + i dag); //add 1 uge til den aktuelle dato localdate i næste uge = i dag. plus, stk. 1, chronounit. uger) system. println ("i næste uge:" + i næste uge); ////////der tilsættes 1 måned til den aktuelle dato localdate nextmonth = i dag. plus, stk. 1, chronounit. måneder); system. println ("næste måned:" + nextmonth); //add 1 år til den aktuelle dato localdate styrkenæste år = i dag. plus, stk. 1, chronounit. år); system. println ("næste år:" + næste år); //add 10 år til den aktuelle dato localdate nextdecade = i dag. plus, stk. 1, chronounit. år); system. println ("dato efter ti år:" + nextdecade)), harrify resultatet udarbejder klasse ved hjælp af, javac, de således − $javac java8tester.java, nu kører det java8tester således − $java java8tester, bør det få følgende resultat −, nuværende dato: 2014-12-10 næste uge: 2014-12-17 næste måned: 2015-01-10 næste år: 2015-12-10 dato efter ti år: 2024-12-10, periode &, varighed, med java - 8, to særlige klasser, der vedrører tiden forskelle &minus,,,,,, og minus. det omhandler datobaserede tid.,,,, varighed og minus; det drejer sig om tid baseret tid.,,, lad os forstå dem med et godt eksempel og minus;, java8tester.java, import java.time.temporal.chronounit; import java.time.localdate; import java.time.localtime; import -va.time.duration; import java.time.period; offentlige klasse java8tester {offentlige statisk tomrum vigtigste (string - args []) (java8tester java8tester = nye java8tester(); java8tester. testperiod(); java8tester. testduration();} offentlige tomrum testperiod() (//den aktuelle dato localdate dato1 = localdate. now(); system. println ("nuværende dato:". dato1); //add 1 måned til den aktuelle dato localdate date2 = dato1. plus, stk. 1, chronounit. måneder); system. println ("næste måned:" + date2); periode periode = periode. mellem (date2, dato1) system. println ("periode:". periode)} offentlige tomrum testduration() {localtime time1 = localtime. now(); varigheden twohours = varighed. timer mere (2); localtime klokkeslæt2 = time1. plus (totimer); varigheden varighed = varighed. mellem (time1, klokkeslæt2) system. println ("varighed:" + varighed)}}, kontrollere resultatet, udarbejdelse af klasse ved hjælp af, javac, de således &minus og $javac java8tester.java, nu kører det java8tester således − $java java8tester, bør det få følgende output og minus;, nuværende dato: 2014-12-10 næste måned: 2015-01-10 periode: p-1m varighed: pt2h, tidsmæssige justeringsanordninger, temporaladjuster anvendes til at udføre den dato, matematik.f.eks. bliver den "anden lørdag om måneden" eller "næste tirsdag.lad os se et eksempel på det −, java8tester.java, import java.time.localdate; import java.time.temporal.temporaladjusters; import java.time.dayofweek; offentlige klasse java8tester {offentlige statisk tomrum vigtigste (string - args []) (java8tester java8tester = nye java8tester(); java8tester. testadjusters();} offentlige tomrum testadjusters() (//den aktuelle dato localdate dato1 = localdate. now(); system. println ("nuværende dato:" + dato1); //kommer næste tirsdag localdate nexttuesday = dato1. med (temporaladjusters. næste (dayofweek. tirsdag) system. println ("næste tirsdag:" + nexttuesday); //den anden lørdag i næste måned. localdate firstinyear = localdate (dat.e1. getyear(), dato1. getmonth(), 1); localdate secondsaturday = firstinyear. med (temporaladjusters. nextorsame (dayofweek. lørdag). (temporaladjusters. næste (dayofweek. lørdag) system. println ("anden lørdag på:" + secondsaturday)}}, kontrollere resultatet, udarbejde denne klasse ved hjælp af, javac, de således − $javac java8tester.java, nu kører det java8tester således − $java java8tester, bør det få følgende resultat −, nuværende dato: 2014-12-10 næste tirsdag: 2014-12-16 anden lørdag på: 2014-12-13, bagudkompatibilitet, en metode, toinstant(), lægges til den oprindelige dato og kalender genstande, som kan anvendes til at konvertere dem til den nye dato tid api - grænseflade.brug eller tilsvarende øjeblikkelig (insant, zoneid) metode til at få et localdatetime eller zoneddatetime objekt.lad os forstå det med et eksempel og minus;, java8tester.java, import java.time.localdatetime; import java.time.zoneddatetime; import java.util.date; import java.time.instant; import java.time.zoneid; offentlige klasse java8tester {offentlige statisk tomrum vigtigste (string - args []) (java8tester java8tester = nye java8tester(); java8tester. testbackwardcompatability();} offentlige tomrum testbackwardcompatability() (//den aktuelle dato dato currentdate = nye date(); system. println ("nuværende dato:" + currentdate); //- øjeblik af dags dato med hensyn til millisekunder øjeblik nu = currentdate. toinstant(); zoneid currentzone = zoneid. systemdefault(); localdatetime localdatetime= localdatetime. eller tilsvarende øjeblikkelig (nu, currentzone) system. println ("lokale dato:" + localdatetime); zoneddatetime zoneddatetime = zoneddatetime. eller tilsvarende øjeblikkelig (nu, currentzone) system. println ("udlagt dato:" + zoneddatetime)}}, kontrollere resultatet, udarbejdelse af klasse ved hjælp af, javac, de således − $javac java8tester.java, nu kører det java8tester således − $java java8tester, bør det få følgende output og minus;, nuværende dato: wid - dec. 10 05:44:06 utc 2014 lokale dato: 2014-12-10t05:44: 06.635 udlagt dato: 2014-12-10t05:44:06.635z [etc /utc]



Previous:
Next Page: