Werken met datums in Java 8

Inhoudsopgave
Werken met datums is altijd een keerpunt geweest in de carrière van programmeurs. Dit komt deels omdat in eerdere versies van Java het was een beetje verwarrend en inconsistent. Echter, in de nieuwe versie a API waarmee we het meeste uit de taal kunnen halen met duidelijkere en gebruiksvriendelijkere methoden.
Dit maakt het werken met datum- en tijdnotaties in Java wees geen marteling. Hiervoor moeten we de nieuwe vormen en mogelijkheden bestuderen die taal ons geeft, met als doel een van de punten die de meeste verwarring opwekt, om te zetten in iets dat we goed beheersen.
Om het werk te vereenvoudigen, heeft het ontwikkelteam van Java heeft ons een aantal veelgebruikte methoden opgeleverd die we kunnen gebruiken, zowel bij het werken met datums, zoals wanneer we werken met uur. Dit maakt de leerinspanning minder vanwege het vergelijkbare gedrag voor beide soorten objecten.
We gaan hieronder enkele van de methoden opsommen die het meest opvallen, samen met een kleine uitleg van waar we ze voor kunnen gebruiken, hiermee kunnen we een algemeen idee hebben als we later naar het praktische gedeelte gaan.
BijMet deze methode kunnen we een combinatie maken van het object dat het oproept met een ander object.
formaatHet stelt ons in staat om enkele parameters te gebruiken om als resultaat een datum of tijd te produceren met een specifiek formaat dat we nodig hebben.
krijgenHet stelt ons in staat om een ​​element te verkrijgen dat we specificeren.
isHet stelt ons in staat om te valideren of een object van het type is waarmee we de vergelijking maken.
plusHet geeft ons de mogelijkheid om een ​​toevoeging toe te voegen aan het object dat het aanroept en retourneert er een kopie van met de reeds toegevoegde waarde.
totHet stelt ons in staat om een ​​conversie van het ene type naar het andere te maken.
Met deze kennis kunnen we nu verder gaan met andere kwesties binnen hetzelfde onderwerp van datums en tijden in Java.
Zoals we de formulieren hebben uitgelegd die worden gebruikt in Java Nu zijn ze gewijzigd voor de nieuwe versie, daarom hebben we, om de voorbeelden te herhalen die we zullen geven, versie 8 van de taalontwikkelingskit nodig, anders krijgen we een foutmelding zoals de volgende:

Het punt verduidelijkt, laten we hieronder eens kijken wat we moeten doen om de informatie van de . te verkrijgen huidige datum en tijd op Java.
Hiervoor gaan we een klasse maken waarin we objecten van het type . gaan instantiëren LokaleDatum, Lokale tijd Y LokaleDatumTijd. Elk van hen geeft ons respectievelijk de huidige datum, de huidige tijd en de huidige datum en tijd.
Dit is heel handig in gevallen als: systeemlogboeken, waarbij we het precieze moment moeten vastleggen waarop een actie wordt ondernomen of een gebeurtenis plaatsvindt die we willen vastleggen. Om het doel te bereiken, kunnen we een code maken die lijkt op de volgende:
 import java.tijd *; openbare klasse CurrentDate {public static void main (String [] args) {LocalDate currentDate = LocalDate.now (); Systeem.uit.println (huidige Datum); LocalTime currentTime = LocalTime.now (); Systeem.uit.println (currentTime); LocalDateTime nu = LocalDateTime.now (); Systeem.uit.println (nu); }} 

Zoals we kunnen zien, is alles wat we doen onze objecten van de bovengenoemde typen declareren en ze de waarde toewijzen die wordt geretourneerd met de methode nu (), die degene is die echt verantwoordelijk is voor het geven van de huidige datum en tijd, dan maken we ons alleen zorgen over het afdrukken van elk van de aangegeven objecten.
BelangrijkHet is erg belangrijk om het pakket op te nemen! java.time in zijn geheel zodat we toegang hebben tot alle functies die we gebruiken, ook als we twijfels hebben in de officiële documentatie, kunnen we meer details vinden over de opties ervan.
Laten we eens kijken hoe de uitvoering van ons programma eruit ziet:

Een ander aspect waar we altijd rekening mee moeten houden is de manier van weergeven van de informatie. In termen van datums hebben we veel manieren, maar sommige zijn in sommige situaties handiger dan andere. Dit leidt er meestal toe dat we extra bewerkingen uitvoeren waardoor we extra regels code moeten schrijven, wat in Java 8 het is niet meer zo ingewikkeld.
Afhankelijk van de applicatie die we ontwikkelen, willen we de maand weergeven met het nummer op de kalender of met de naam, maar de naam kan volledig of afgekort zijn, evenals de dag of het jaar, dit alles geeft ons een zeer groot aantal opties, allemaal even geldig. Om dit probleem op te lossen, kunnen we de datumformatter gebruiken.
Om de datums op te maken, hebben we enkele jokertekens of parameters waarmee we de waarden kunnen verkrijgen die in de vorige paragraaf zijn uitgelegd. Laten we eens kijken welke het belangrijkst zijn.
  • Y, geeft ons toegang tot het jaartal in vier- of tweecijferige indeling (2014 of 14).
  • NS, stelt ons in staat om het nummer van de dag van het jaar (225) te verkrijgen.
  • NS, In tegenstelling tot de vorige geeft het het nummer van de dag van de maand in kwestie (27).
  • L, helpt ons om de maand van het jaar in numerieke vorm te krijgen, m geeft ons de maand in tekst.
  • H, geeft ons de tijd.
  • s, geeft ons de seconden.
  • m, stelt ons in staat om de notulen te verkrijgen.
  • tot, geeft ons de am of pm van het uur.
  • z, geeft ons toegang tot de naam van de tijdzone.
Omdat we de basisformaatparameters kennen, gaan we een nieuwe oefening proberen, in de volgende code gaan we enkele formaten doen, allereerst gaan we de huidige datum verkrijgen en gaan we deze converteren naar het formaat jaar maand dag met schuine strepen in plaats van koppeltekens, dan gaan we een statische datum ontleden die afkomstig is van een string met hetzelfde formaat en tot slot gaan we een volledige datum tonen, inclusief of het am of pm is, om gebruik te maken van de wildcards die we hebben eerder hebben uitgelegd. Laten we de bijbehorende code bekijken:
 import java.tijd *; import java.time.format *; public class DateFormatter {public static void main (String [] args) {DateTimeFormatter formatted date = DateTimeFormatter.ofPattern ("jjjj / LL / dd"); System.out.println (FormattedDate.format (LocalDate.now ())); System.out.println (LocalDate.parse ("2014/11/15", geformatteerde datum)); DateTimeFormatter timezone = DateTimeFormatter.ofPattern ("d MMMM, jjjj h: mm a"); System.out.println (ZonedDateTime.now (). Formaat (tijdzone)); }} 

Het eerste dat we kunnen benadrukken, is dat we zowel het pakket moeten importeren java.time met al zijn klassen als het pakket java.time.format ook met al zijn lessen. Het is mogelijk om de oefening te doen door de specifieke klassen te importeren, maar dat laten we als huiswerk, zodat ze ook de taak hebben om de officiële documentatie te zien.
Dan zien we dat we een object maken van het type DatumTijdopmaak en we gebruiken de methode vanPatroon () die de opgegeven jokertekens accepteert, zien we dat we de jokertekens dubbel plaatsen als yyyy om de vier cijfers van het huidige jaar te verkrijgen of ook mm om de twee cijfers van de minuten te verkrijgen.
Ten slotte drukken we elk van de datums af met hun formaten en verkrijgen we het volgende wanneer we ons programma uitvoeren:

Dit is waar we alle veranderingen kunnen observeren die we hebben aangebracht in de manier van opmaken van de datums, hiermee kunnen we het een grotere betekenis en leesbaarheid geven, zowel op menselijk niveau als voor motoren van Database Wat MySQL u moet de standaarddatum in formaat ontvangen jjjj-LL-dd.
Een ander gebruik dat we kunnen geven aan de nieuwe datum- en tijdklassen van Java is om datums te kunnen gebruiken die uit een tekstreeks komen, deze kunnen door een gebruiker worden gemaakt, uit een tekstbestand komen, enz. Maar het belangrijkste is dat we ze moeten manipuleren en hiervoor kunnen we alle tools gebruiken die we bij de hand hebben.
Laten we in de volgende code zien hoe we, gebruikmakend van wat we hebben gezien, wijzigingen kunnen aanbrengen in een datum uit een tekstreeks.
 import java.tijd *; import java.time.format *; public class StaticDate {public static void main (String [] args) {String StartDate = "1906-12-31"; LocalDate TakeDate = LocalDate.parse (startDate); System.out.println ("Datum:" + TakenDate); Tekenreeks dateStartTime = "1906-12-31T12: 05"; LocalDateTime TakenDateTime = LocalDateTime.parse (TimeInitialDate); System.out.println ("Datum / Tijd:" + dateTakTime); DateTimeFormatter df = DateTimeFormatter.ofPattern ("dd MMM uuuu"); System.out.println (TakenDate + "Met nieuw formaat:" + df.format (TakenDate)); }} 

In de code zien we hoe we een begindatum maken in een tekststring en vervolgens met een object van het type LokaleDatum we gebruiken de methode ontleden om de tekenreeks op te nemen in een datumtype-object, dan printen we het object en zien we dat als de datum correct is opgenomen, we dezelfde procedure herhalen maar datum en tijd gebruiken met LokaleDatumTijd.
Ten slotte nemen we ons eerste gemaakte object en passen we er een nieuw formaat op toe, waarmee we bevestigen dat we een datum hebben kunnen invoeren en manipuleren die we hebben vastgesteld op basis van een tekstreeks. Laten we eens kijken hoe het eruit ziet als we ons programma uitvoeren:

Hiermee sluiten we deze tutorial af, we hebben geleerd om te werken met datums in Java met behulp van de verbeteringen in de klassen die de nieuwe versie bevat, namelijk: Java 8Dit kan voor veel toepassingen op systeemniveau en zelfs voor gebruikersinterfaces worden gebruikt.Vond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een ​​positief punt te geven

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave