Lucrul cu date în Java 8

Cuprins
Lucrul cu întâlnirile a fost întotdeauna un moment decisiv în cariera programatorilor. Acest lucru se datorează parțial faptului că în versiunile anterioare ale Java a fost un pic confuz și inconsecvent. Cu toate acestea, în noua versiune a API care ne permite să profităm la maximum de limbă cu metode mai clare și mai ușor de utilizat.
Acest lucru face ca lucrul cu formatele de dată și oră în Java nu fi tortură. Pentru aceasta trebuie să studiem noile forme și posibilități pe care ni le oferă limbajul, cu scopul de a transforma unul dintre punctele care generează cea mai mare confuzie, în ceva pe care îl stăpânim în mod corespunzător.
Pentru a simplifica munca, echipa de dezvoltare a Java ne-a furnizat o serie de metode uzuale pe care le putem folosi, atât atunci când lucrăm cu datele, ca atunci când lucrăm cu ore. Acest lucru face ca efortul de învățare să fie mai mic datorită unui comportament similar pentru ambele tipuri de obiecte.
Vom enumera mai jos câteva dintre metodele care se remarcă cel mai mult, împreună cu o mică explicație pentru ce le putem folosi, cu aceasta putem avea o idee generală atunci când vom trece la partea practică mai târziu.
laAceastă metodă ne permite să realizăm o combinație a obiectului care îl invocă cu un alt obiect.
formatNe permite să folosim unii parametri pentru a produce ca rezultat o dată sau o oră cu un format specific de care avem nevoie.
obțineNe permite să obținem un element pe care îl specificăm.
esteNe permite să validăm dacă un obiect este de tipul cu care facem comparația.
la care se adaugaNe oferă posibilitatea adăugării unui adaos la obiectul care îl invocă și returnează o copie a acestuia cu valoarea adăugată deja.
laNe permite să facem o conversie de la un tip la altul.
Acum, cu aceste cunoștințe, putem trece la alte probleme în cadrul aceluiași subiect de date și ore din Java.
Așa cum am explicat formele utilizate în Java Acum s-au schimbat pentru noua versiune, de aceea pentru a repeta exemplele pe care le vom oferi avem nevoie de versiunea 8 a kitului de dezvoltare a limbajului, altfel vom primi o eroare precum următoarea:

Clarificat punctul, să vedem mai jos ce trebuie să facem pentru a obține informațiile din data și ora curente în Java.
Pentru aceasta, vom crea o clasă în care vom instanția obiecte de acest tip LocalDate, Ora locala Da LocalDateTime. Fiecare dintre ele ne va oferi, respectiv, data curentă, ora curentă și data și ora curente.
Acest lucru este destul de util în cazuri precum jurnalele de sistem, unde trebuie să surprindem momentul precis în care este întreprinsă o acțiune sau are loc un eveniment pe care ne interesează să îl înregistrăm. Pentru a atinge obiectivul putem crea un cod similar cu următorul:
 import 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 acum = LocalDateTime.now (); System.out.println (acum); }} 

După cum putem vedea, tot ce facem este să ne declarăm obiectele din tipurile menționate mai sus și să le atribuim valoarea returnată cu metoda acum (), care este cel care se ocupă cu adevărat de data și ora curente, atunci ne îngrijorăm doar despre tipărirea fiecăruia dintre obiectele declarate.
ImportantEste foarte important să includeți pachetul java.time în întregime, astfel încât să putem accesa toate funcțiile pe care le folosim, de asemenea, dacă avem îndoieli în documentația oficială, putem găsi mai multe detalii despre opțiunile aceluiași.
Să vedem cum arată execuția programului nostru:

Un alt aspect de care trebuie să ținem cont întotdeauna este modul de afișare a informațiilor. În ceea ce privește datele, avem multe modalități, cu toate acestea unele sunt mai convenabile decât altele în anumite situații. Acest lucru ne duce de cele mai multe ori la efectuarea de operațiuni suplimentare care ne fac să scriem linii de cod suplimentare, care în Java 8 nu mai este atât de complex.
În funcție de aplicația pe care o dezvoltăm, vom dori să arătăm luna după numărul său din calendar sau după numele său, dar numele poate fi complet sau prescurtat, precum și ziua sau anul, toate acestea ne oferă o un număr foarte mare de opțiuni, toate la fel de valabile. Pentru a rezolva această problemă putem folosi formatatorul de date.
Pentru a formata datele avem câteva metacaractere sau parametri care ne permit să obținem valorile explicate în paragraful anterior. Să vedem care sunt cele mai importante.
  • Da, ne permite să accesăm anul în format din patru sau două cifre (2014 sau 14).
  • D, ne permite să obținem numărul din ziua anului (225).
  • d, Spre deosebire de precedent, acesta returnează numărul din ziua lunii în cauză (27).
  • L, ne ajută să obținem luna anului sub formă numerică, M ne dă luna în text.
  • H, ne dă timpul.
  • s, ne dă secunde.
  • m, ne permite să obținem minutele.
  • la, ne dă am sau pm ale orei.
  • z, ne permite să accesăm numele fusului orar.
Deoarece cunoaștem parametrii de bază de format, vom încerca un nou exercițiu, în următorul cod vom face unele formate, în primul rând vom obține data curentă și o vom converti în format an lună zi cu linii oblice în loc de cratime, atunci vom analiza o dată statică care provine dintr-un șir cu același format și, în cele din urmă, vom arăta o dată completă, inclusiv dacă este am sau pm, pentru a utiliza wildcards-urile pe care le am explicat anterior. Să vedem codul corespunzător:
 import java.time. *; import java.time.format. *; public class DateFormatter {public static void main (String [] args) {DateTimeFormatter formated date = DateTimeFormatter.ofPattern ("aaaa / LL / dd"); System.out.println (FormattedDate.format (LocalDate.now ())); System.out.println (LocalDate.parse ("2014/11/15", data formatată)); DateTimeFormatter timezone = DateTimeFormatter.ofPattern ("d MMMM, aaaa h: mm a"); System.out.println (ZonedDateTime.now (). Format (fus orar)); }} 

Primul lucru pe care îl putem evidenția este că trebuie să importăm atât pachetul java.time cu toate clasele sale ca pachet java.time.format și cu toate clasele sale. Este posibil să faceți exercițiul importând clasele specifice, dar lăsăm asta ca temă, de asemenea, astfel încât aceștia să aibă sarcina de a vedea documentația oficială.
Apoi vedem că creăm un obiect de acest tip DateTimeFormatter și folosim metoda ofPattern () care acceptă metacaracterele specificate, vedem că plasăm metacaracterele în duplicat ca aaaa pentru a obține cele patru cifre ale anului curent sau, de asemenea, mm pentru a obține cele două cifre ale minutelor.
În cele din urmă, imprimăm fiecare dintre date cu formatele lor și obținem următoarele când executăm programul nostru:

Aici putem observa toate schimbările pe care le-am făcut modului de formatare a datelor, cu aceasta îi putem da mai multă semnificație și lizibilitate atât la nivel uman, cât și pentru motoarele de Bază de date Ce MySQL trebuie să primiți data implicită în format aaaa-LL-dd.
O altă utilizare pe care o putem oferi noilor clase de dată și oră Java este să puteți utiliza datele care provin dintr-un șir de text, acestea pot fi create de un utilizator, provin dintr-un fișier text etc. Dar important este că trebuie să le manipulăm și pentru aceasta putem folosi toate instrumentele pe care le avem la îndemână.
Să vedem în următorul cod cum, folosind ceea ce am văzut, putem face modificări la o dată dintr-un șir de text.
 import java.time. *; import 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); String dateStartTime = "1906-12-31T12: 05"; LocalDateTime TakenDateTime = LocalDateTime.parse (TimeInitialDate); System.out.println ("Data / Ora:" + dateTakTime); DateTimeFormatter df = DateTimeFormatter.ofPattern ("dd MMM uuuu"); System.out.println (TakenDate + "Cu noul format:" + df.format (TakenDate)); }} 

În cod vedem cum creăm o dată inițială într-un șir de text, apoi cu un obiect de acest tip LocalDate folosim metoda Analiza pentru a încorpora șirul de text într-un obiect de tip dată, apoi imprimăm obiectul și vedem că dacă a luat data corect, repetăm ​​aceeași procedură, dar folosind data și ora cu LocalDateTime.
În cele din urmă, luăm primul nostru obiect creat și îi aplicăm un nou format, confirmând astfel că am reușit să introducem și să manipulăm o dată pe care am stabilit-o dintr-un șir de text. Să vedem cum arată când rulăm programul:

Cu aceasta terminăm acest tutorial, am învățat să lucrăm cu date în Java folosind îmbunătățirile din clasele pe care le încorporează noua versiune, adică Java 8Aceasta poate fi utilizată pentru multe aplicații la nivel de sistem și chiar pentru interfețe utilizator.V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv
wave wave wave wave wave