Darbas su datomis „Java 8“

Turinys
Darbas su datomis visada buvo lūžis programuotojų karjeroje. Iš dalies taip yra todėl, kad ankstesnėse versijose „Java“ tai buvo šiek tiek painu ir nenuoseklu. Tačiau naujoje versijoje a API tai leidžia mums kuo geriau išnaudoti kalbą aiškesniais ir lengviau naudojamais metodais.
Tai verčia dirbti su datos ir laiko formatai į „Java“ nebūk kankinamas. Tam turime išstudijuoti naujas kalbos teikiamas formas ir galimybes, kad vieną iš daugiausiai painiavos sukeliančių taškų paverstume tuo, ką tinkamai įvaldome.
Norėdami supaprastinti darbą, kūrimo komanda „Java“ pateikė mums keletą bendrų metodų, kuriuos galime naudoti tiek dirbdami datas, kaip kai dirbame valandų. Tai sumažina mokymosi pastangas, nes abiejų tipų objektai elgiasi panašiai.
Toliau išvardysime kai kuriuos labiausiai išsiskiriančius metodus ir nedidelį paaiškinimą, kam juos galime panaudoti, todėl galime susidaryti bendrą idėją, kai vėliau pereisime prie praktinės dalies.
neŠis metodas leidžia mums sukurti objekto, kuris jį iškviečia, derinį su kitu objektu.
formatuTai leidžia mums naudoti tam tikrus parametrus, kad gautume datą ar laiką tam tikru formatu, kurio mums reikia.
gautiTai leidžia mums gauti mūsų nurodytą elementą.
yraTai leidžia mums patikrinti, ar objektas yra tokio tipo, su kuriuo lyginame.
pliusasTai suteikia mums galimybę pridėti priedą prie objekto, kuris jį iškviečia, ir grąžina jo kopiją su jau pridėta verte.
įTai leidžia mums konvertuoti iš vieno tipo į kitą.
Turėdami šias žinias, galime pereiti prie kitų klausimų, susijusių su ta pačia datų ir laikų tema „Java“.
Kaip paaiškinome naudojamas formas „Java“ Dabar jie pasikeitė dėl naujos versijos, todėl norėdami pakartoti mūsų pateiktus pavyzdžius, mums reikia kalbos kūrimo rinkinio 8 versijos, kitaip gausime tokią klaidą:

Išsiaiškinome esmę, toliau pažiūrėkime, ką turime padaryti, kad gautume informaciją dabartinę datą ir laiką „Java“.
Tam mes sukursime klasę, kurioje mes imituosime tokio tipo objektus LocalDate, Vietinis laikas Y LocalDateTime. Kiekvienas iš jų atitinkamai nurodys dabartinę datą, dabartinį laiką ir dabartinę datą bei laiką.
Tai gana naudinga tokiais atvejais sistemos žurnalai, kur turime užfiksuoti tikslų momentą, kai imamasi veiksmų ar įvyksta įvykis, kurį norime įrašyti. Norėdami pasiekti tikslą, galime sukurti kodą, panašų į šį:
 importuoti java.time. *; public class CurrentDate {public static void main (String [] args) {LocalDate currentDate = LocalDate.now (); System.out.println (currentDate); LocalTime currentTime = LocalTime.now (); System.out.println (currentTime); LocalDateTime now = LocalDateTime.now (); System.out.println (dabar); }} 

Kaip matome, viskas, ką mes darome, yra deklaruoti pirmiau minėtų tipų objektus ir priskirti jiems vertę, kuri grąžinama naudojant metodą dabar (), kuris iš tikrųjų yra atsakingas už dabartinės datos ir laiko nurodymą, tada mes nerimaujame tik dėl kiekvieno deklaruoto objekto spausdinimo.
SvarbuLabai svarbu įtraukti pakuotę java.laikas visą, kad galėtume pasiekti visas mūsų naudojamas funkcijas, taip pat, jei mums kyla abejonių oficialioje dokumentacijoje, galime rasti daugiau informacijos apie tas galimybes.
Pažiūrėkime, kaip atrodo mūsų programos vykdymas:

Kitas aspektas, į kurį visada turime atsižvelgti, yra informacijos pateikimo būdas. Kalbant apie datas, turime daug būdų, tačiau kai kurie yra patogesni nei kiti. Dažniausiai tai verčia mus atlikti papildomas operacijas, kurios verčia rašyti papildomas kodo eilutes „Java 8“ tai nebėra taip sudėtinga.
Priklausomai nuo to, kokią programą kuriame, mes norėsime rodyti mėnesį pagal jo skaičių kalendoriuje arba pavadinimą, tačiau pavadinimas gali būti visas arba sutrumpintas, taip pat diena ar metai, visa tai suteikia mums labai daug variantų, visi vienodai galioja. Norėdami išspręsti šią problemą, galime naudoti datos formatavimo priemonę.
Norėdami suformatuoti datas, turime keletą pakaitos simbolių arba parametrų, kurie leidžia gauti ankstesnėje pastraipoje nurodytas vertes. Pažiūrėkime, kurie yra svarbiausi.
  • Y, leidžia mums pasiekti metus keturių ar dviejų skaitmenų formatu (2014 arba 14).
  • D, leidžia mums gauti metų dienos skaičių (225).
  • d, Priešingai nei ankstesnė, ji grąžina atitinkamo mėnesio dienos skaičių (27).
  • L, padeda mums gauti metų mėnesį skaitine forma, M duoda mums mėnesį tekstu.
  • H, duoda mums laiko.
  • s, suteikia mums sekundžių.
  • m, leidžia mums gauti protokolą.
  • į, nurodo valandą ryto arba vakaro.
  • z, leidžia mums pasiekti laiko juostos pavadinimą.
Kadangi žinome pagrindinius formato parametrus, ketiname išbandyti naują pratimą, o toliau pateiktame kode darysime tam tikrus formatus, visų pirma, gausime dabartinę datą ir konvertuosime ją į formatą metų mėnesio diena su brūkšneliais, o ne brūkšneliais, tada mes analizuosime statinę datą, gautą iš to paties formato eilutės, ir galiausiai parodysime visą datą, įskaitant tai, ar tai yra „am“, ar „pm“, kad galėtume pasinaudoti paaiškino anksčiau. Pažiūrėkime atitinkamą kodą:
 importuoti java.time. *; importuoti java.time.format. *; public class DateFormatter {public static void main (String [] args) {DateTimeFormatter suformatuota data = DateTimeFormatter.ofPattern ("yyyy / LL / dd"); System.out.println (FormattedDate.format (LocalDate.now ()))); System.out.println (LocalDate.parse ("2014/11/15", suformatuota data)); DateTimeFormatter timezone = DateTimeFormatter.ofPattern ("d MMMM, yyyy h: mm a"); System.out.println (ZonedDateTime.now (). Formatas (laiko juosta)); }} 

Pirmas dalykas, kurį galime pabrėžti, yra tai, kad turime importuoti tiek paketą java.laikas su visomis klasėmis kaip paketas java.time.format su visomis jo klasėmis. Pratimą galima atlikti importuojant konkrečias klases, tačiau mes tai paliekame kaip namų darbus, taip pat jie turi užduotį pamatyti oficialius dokumentus.
Tada matome, kad sukuriame tokio tipo objektą DateTimeFormatter ir mes naudojame metodą ofPattern () kuris priima nurodytus pakaitos simbolius, matome, kad juos pakeičiame dviem egzemplioriais kaip yyyy gauti keturis einamųjų metų skaitmenis arba mm, kad gautumėte du minutės skaitmenis.
Galiausiai mes atspausdiname kiekvieną datą su jų formatais ir vykdydami programą gauname šiuos duomenis:

Čia galime stebėti visus pakeitimus, kuriuos padarėme formatuodami datas, ir tai galime suteikti daugiau reikšmės ir skaitymo tiek žmogaus, tiek variklių lygiu Duomenų bazėMySQL turite gauti numatytąją datą formatu yyyy-LL-dd.
Kitas panaudojimas, kurį galime suteikti naujoms datos ir laiko klasėms „Java“ yra galimybė naudoti datas, gautas iš teksto eilutės, jas gali sukurti vartotojas, kilti iš teksto failo ir pan. Tačiau svarbu tai, kad turime jais manipuliuoti ir tam galime naudoti visas turimas priemones.
Pažvelkime į šį kodą, kaip, pasinaudoję tuo, ką matėme, galime pakeisti datą iš teksto eilutės.
 importuoti java.time. *; importuoti java.time.format. *; public class StaticDate {public static void main (String [] args) {String StartDate = "1906-12-31"; LocalDate takenDate = LocalDate.parse (startDate); System.out.println ("Data:" + TakenDate); Eilutės dataStartTime = "1906-12-31T12: 05"; LocalDateTime TakenDateTime = LocalDateTime.parse (TimeInitialDate); System.out.println ("Data / laikas:" + dateTakTime); DateTimeFormatter df = DateTimeFormatter.ofPattern ("dd MMM uuuu"); System.out.println (TakenDate + "Su nauju formatu:" + df.format (TakenDate)); }} 

Kode matome, kaip mes sukuriame pradinę datą teksto eilutėje, tada su tipo objektu LocalDate mes naudojame metodą Analizuoti norėdami įtraukti teksto eilutę į datos tipo objektą, tada atspausdiname objektą ir matome, kad jei data buvo tinkamai paimta, pakartojame tą pačią procedūrą, bet naudodami datą ir laiką su LocalDateTime.
Galiausiai paimame pirmą kartą sukurtą objektą ir pritaikome jam naują formatą, taip patvirtindami, kad mums pavyko įvesti datą, kurią nustatėme iš teksto eilutės, ir ja manipuliuoti. Pažiūrėkime, kaip tai atrodo, kai vykdome savo programą:

Baigę šį vadovėlį, išmokome dirbti su datomis „Java“ naudojant patobulinimus klasėse, į kurias įtraukta naujoji versija, t „Java 8“Tai gali būti naudojama daugeliui programų sistemos lygiu ir net vartotojo sąsajoms.Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką
wave wave wave wave wave