Arbejde med datoer i Java 8

Indholdsfortegnelse
Arbejde med datoer har altid været et vendepunkt i programmørernes karriere. Dette skyldes dels, at i tidligere versioner af Java det var lidt forvirrende og inkonsekvent. I den nye version a API der giver os mulighed for at få mest muligt ud af sproget med klarere og lettere at bruge metoder.
Dette gør arbejdet med dato og klokkeslæt -formater i Java vær ikke tortur. Til dette må vi studere de nye former og muligheder, som sproget giver os, med det formål at gøre et af de punkter, der skaber mest forvirring, til noget, vi mestrer korrekt.
For at forenkle arbejdet, udviklingsteamet af Java har givet os en række fælles metoder, som vi kan bruge, både når vi arbejder med datoer, som når vi arbejder med timer. Dette gør læringsindsatsen mindre på grund af at have en lignende adfærd for begge typer objekter.
Vi vil nedenfor liste nogle af de metoder, der skiller sig mest ud sammen med en lille forklaring på, hvad vi kan bruge dem til, med dette kan vi have en generel idé, når vi går til den praktiske del senere.
påDenne metode giver os mulighed for at lave en kombination af objektet, der påberåber det med et andet objekt.
formatDet giver os mulighed for at bruge nogle parametre til at producere som følge heraf en dato eller et tidspunkt med et specifikt format, som vi har brug for.
fåDet giver os mulighed for at få et element, som vi specificerer.
erDet giver os mulighed for at validere, om et objekt er af den type, vi foretager sammenligningen med.
plusDet giver os mulighed for at tilføje en tilføjelse til det objekt, der påberåber det, og returnerer en kopi af det med den værdi, der allerede er tilføjet.
tilDet giver os mulighed for at foretage en konvertering fra en type til en anden.
Nu med denne viden kan vi gå videre til andre spørgsmål inden for det samme emne datoer og tider i Java.
Som vi har forklaret de former, der bruges i Java Nu har de ændret sig til den nye version, derfor skal vi gentage de eksempler, vi vil give, vi har brug for version 8 af sprogudviklingssættet, ellers modtager vi en fejl som følgende:

Afklaret punktet, lad os se nedenfor, hvad vi skal gøre for at indhente oplysningerne om nuværende dato og klokkeslæt i Java.
Til dette vil vi oprette en klasse, hvor vi vil instantiere objekter af denne type Lokal dato, Lokal tid Y LocalDateTime. Hver af dem vil give os henholdsvis den aktuelle dato, det aktuelle tidspunkt og den aktuelle dato og tid.
Dette er ganske nyttigt i tilfælde som systemlogfiler, hvor vi skal fange det præcise øjeblik, hvor der foretages en handling, eller der sker en begivenhed, som vi er interesserede i at optage. For at nå målet kan vi lave en kode, der ligner følgende:
 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 nu = LocalDateTime.now (); System.out.println (nu); }} 

Som vi kan se, er alt, hvad vi gør, at deklarere vores objekter af de førnævnte typer og tildele dem den værdi, der returneres med metoden nu (), som er den, der virkelig er ansvarlig for at give den aktuelle dato og klokkeslæt, så bekymrer vi os kun om at udskrive hver af de deklarerede objekter.
VigtigDet er meget vigtigt at inkludere pakken java.tid i sin helhed, så vi kan få adgang til alle de funktioner, vi bruger, også hvis vi er i tvivl i den officielle dokumentation, kan vi finde flere detaljer om mulighederne for det samme.
Lad os se, hvordan udførelsen af ​​vores program ser ud:

Et andet aspekt, som vi altid skal tage højde for, er måden at vise informationen på. Med hensyn til datoer har vi mange måder, men nogle er mere bekvemme end andre i nogle situationer. Dette får os oftest til at udføre yderligere operationer, der får os til at skrive yderligere kodelinjer, som i Java 8 det er ikke længere så komplekst.
Afhængigt af den applikation, vi udvikler, vil vi gerne vise måneden med sit nummer i kalenderen eller ved navn, men navnet kan være komplet eller forkortet samt dagen eller året, alt dette giver os en meget stort antal muligheder, alle lige gyldige. For at løse dette problem kan vi bruge datoformatereren.
For at formatere datoerne har vi nogle jokertegn eller parametre, der giver os mulighed for at få de værdier, der er forklaret i det foregående afsnit. Lad os se, hvilke der er de vigtigste.
  • Y, giver os adgang til året i fire- eller tocifret format (2014 eller 14).
  • D, giver os mulighed for at få nummeret på årets dag (225).
  • d, I modsætning til den foregående returnerer den nummeret på dagen i den pågældende måned (27).
  • L, hjælper os med at få årets måned i numerisk form, M giver os måneden i tekst.
  • H, giver os tiden.
  • s, giver os sekunderne.
  • m, giver os mulighed for at få referatet.
  • til, giver os timers am eller pm.
  • z, giver os adgang til navnet på tidszonen.
Da vi kender de grundlæggende formatparametre, vil vi prøve en ny øvelse, i den følgende kode skal vi lave nogle formater, først og fremmest vil vi få den aktuelle dato, og vi vil konvertere den til formatet år måned dag med skråstreger i stedet for bindestreger, så vil vi analysere en statisk dato, der kommer fra en streng med samme format, og endelig vil vi vise en komplet dato, herunder hvis det er am eller pm, for at gøre brug af de jokertegn, som vi har forklaret tidligere. Lad os se den tilsvarende kode:
 import java.time. *; import java.time.format. *; public class DateFormatter {public static void main (String [] args) {DateTimeFormatter formatted date = DateTimeFormatter.ofPattern ("åååå / LL / dd"); System.out.println (FormattedDate.format (LocalDate.now ())); System.out.println (LocalDate.parse ("2014/11/15", formateret dato)); DateTimeFormatter tidszone = DateTimeFormatter.ofPattern ("d MMMM, åååå h: mm a"); System.out.println (ZonedDateTime.now (). Format (tidszone)); }} 

Det første, vi kan fremhæve, er, at vi skal importere begge pakker java.tid med alle dens klasser som pakken java.time.format også med alle hans klasser. Det er muligt at udføre øvelsen ved at importere de specifikke klasser, men vi lader det være som lektier, også så de har en opgave at se den officielle dokumentation.
Så ser vi, at vi skaber et objekt af typen DateTimeFormatter og vi bruger metoden afPattern () der accepterer de angivne jokertegn, ser vi, at vi placerer jokertegnene i to eksemplarer som åååå at få de fire cifre i indeværende år eller også mm for at få de to cifre i minutterne.
Endelig udskriver vi hver af datoerne med deres formater, og vi får følgende, når vi udfører vores program:

Det er her, vi kan observere alle de ændringer, vi har foretaget i måden at formatere datoerne på, med dette kan vi give det større mening og læsbarhed både på menneskeligt plan og til motorer i Database Hvad MySQL du skal modtage standarddatoen i format åååå-LL-dd.
En anden brug, som vi kan give til de nye dato- og tidsklasser for Java er for at kunne bruge datoer, der kommer fra en tekststreng, kan disse oprettes af en bruger, komme fra en tekstfil osv. Men det vigtige er, at vi skal manipulere dem, og til dette kan vi bruge alle de værktøjer, vi har til rådighed.
Lad os se i følgende kode, hvordan vi ved hjælp af det, vi har set, kan foretage ændringer af en dato fra en tekststreng.
 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 ("Dato:" + TakenDate); String dateStartTime = "1906-12-31T12: 05"; LocalDateTime TakenDateTime = LocalDateTime.parse (TimeInitialDate); System.out.println ("Dato / tid:" + dateTakTime); DateTimeFormatter df = DateTimeFormatter.ofPattern ("dd MMM uuuu"); System.out.println (TakenDate + "Med nyt format:" + df.format (TakenDate)); }} 

I koden ser vi, hvordan vi opretter en startdato i en tekststreng, derefter med et objekt af typen Lokal dato vi bruger metoden Analyse for at indarbejde tekststrengen i et datotypeobjekt, så udskriver vi objektet og ser, at hvis det tog datoen korrekt, gentager vi den samme procedure, men ved hjælp af dato og klokkeslæt med LocalDateTime.
Endelig tager vi vores første oprettede objekt og anvender et nyt format på det og bekræfter derved, at vi har været i stand til at indtaste og manipulere en dato, som vi har etableret fra en tekststreng. Lad os se, hvordan det ser ud, når vi kører vores program:

Med dette afslutter vi denne vejledning, vi har lært at arbejde med datoer i Java ved hjælp af forbedringerne i de klasser, som den nye version inkorporerer, hvilket er Java 8Dette kan bruges til mange applikationer på systemniveau og endda til brugergrænseflader.Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave