Innholdsfortegnelse
Arbeid med datoer har alltid vært et vendepunkt i karrieren til programmerere. Dette er delvis fordi det i tidligere versjoner av Java det var litt forvirrende og inkonsekvent. Men i den nye versjonen a API som lar oss få mest mulig ut av språket med tydeligere og enklere å bruke metoder.Dette gjør arbeidet med dato og klokkeslettformater i Java ikke bli torturert. For dette må vi studere de nye formene og mulighetene som språket gir oss, med sikte på å gjøre et av punktene som genererer mest forvirring, til noe vi mestrer riktig.
For å forenkle arbeidet, utviklingsteamet til Java har gitt oss en rekke vanlige metoder som vi kan bruke, både når vi jobber med datoer, som når vi jobber med timer. Dette gjør læringsinnsatsen mindre på grunn av å ha lignende oppførsel for begge typer objekter.
Vi kommer til å liste opp noen av metodene som skiller seg mest ut sammen med en liten forklaring på hva vi kan bruke dem til, med dette kan vi ha en generell idé når vi går til den praktiske delen senere.
påDenne metoden lar oss lage en kombinasjon av objektet som påkaller det med et annet objekt.
formatDet lar oss bruke noen parametere til å produsere en dato eller et tidspunkt med et bestemt format som vi trenger.
fåDet lar oss skaffe et element som vi spesifiserer.
erDet lar oss validere om et objekt er av typen vi gjør sammenligningen med.
PlusDet gir oss muligheten til å legge til et tillegg til objektet som påberoper det og returnerer en kopi av det med verdien som allerede er lagt til.
tilDet lar oss gjøre en konvertering fra en type til en annen.
Nå med denne kunnskapen kan vi gå videre til andre spørsmål innenfor det samme emnet for datoer og tider i Java.
Som vi har forklart skjemaene som brukes i Java Nå har de endret seg for den nye versjonen, det er derfor vi skal gjenta eksemplene vi gir, vi trenger versjon 8 av språkutviklingssettet, ellers får vi en feil som følgende:
Avklarte poenget, la oss se nedenfor hva vi må gjøre for å få informasjon om gjeldende dato og klokkeslett i Java.
For dette skal vi lage en klasse der vi skal instantiere objekter av typen LocalDate, Lokal tid Y LocalDateTime. Hver av dem vil gi oss henholdsvis gjeldende dato, gjeldende tid og gjeldende dato og klokkeslett.
Dette er ganske nyttig i tilfeller som systemlogger, der vi må fange det nøyaktige øyeblikket da en handling blir utført eller en hendelse oppstår som vi er interessert i å registrere. For å nå målet kan vi lage en kode som ligner på 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 nå = LocalDateTime.now (); System.out.println (nå); }}
Som vi kan se, er alt vi gjør å deklarere objektene våre av de nevnte typene og tildele dem verdien som returneres med metoden nå (), som er den som virkelig har ansvaret for å oppgi gjeldende dato og klokkeslett, så bekymrer vi oss bare for å skrive ut hvert av de deklarerte objektene.
ViktigDet er veldig viktig å inkludere pakken java.tid i sin helhet slik at vi kan få tilgang til alle funksjonene vi bruker, også hvis vi er i tvil i den offisielle dokumentasjonen, kan vi finne flere detaljer om alternativene til den samme.
La oss se hvordan utførelsen av programmet vårt ser ut:
Et annet aspekt som vi alltid må ta hensyn til, er måten å vise informasjonen på. Når det gjelder datoer, har vi mange måter, men noen er mer praktiske enn andre i noen situasjoner. Dette fører mesteparten av tiden til at vi utfører flere operasjoner som får oss til å skrive flere kodelinjer, som i Java 8 det er ikke lenger så komplekst.
Avhengig av applikasjonen vi utvikler, vil vi vise måneden med nummeret på kalenderen eller navnet, men navnet kan være komplett eller forkortet, så vel som dagen eller året, alt dette gir oss en veldig stort antall alternativer, alle like gyldige. For å løse dette problemet kan vi bruke datoformatereren.
For å formatere datoene har vi noen jokertegn eller parametere som lar oss få tak i verdiene forklart i forrige avsnitt. La oss se hvilke som er de viktigste.
- Y, gir oss tilgang til året i fire eller to -sifret format (2014 eller 14).
- D, lar oss få nummeret på dagen i året (225).
- d, I motsetning til den forrige returnerer den nummeret på dagen i den aktuelle måneden (27).
- L, hjelper oss å få måneden i året i numerisk form, M gir oss måneden i tekst.
- H, gir oss tid.
- s, gir oss sekundene.
- m, lar oss få referatet.
- til, gir oss klokken am eller pm.
- z, gir oss tilgang til navnet på tidssonen.
import java.time. *; importer 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", formatert dato)); DateTimeFormatter tidssone = DateTimeFormatter.ofPattern ("d MMMM, åååå h: mm a"); System.out.println (ZonedDateTime.now (). Format (tidssone)); }}
Det første vi kan markere er at vi må importere begge pakkene java.tid med alle sine klasser som pakken java.time.format med alle klassene hans også. Det er mulig å gjøre øvelsen ved å importere de spesifikke klassene, men vi lar det være som lekser, også slik at de har en oppgave å se den offisielle dokumentasjonen.
Så ser vi at vi lager et objekt av typen DateTimeFormatter og vi bruker metoden ofPattern () som godtar de spesifiserte jokertegnene, ser vi at vi plasserer jokertegnene i duplikat som åååå for å få de fire sifrene i inneværende år eller også mm for å få de to sifrene i minuttene.
Til slutt skriver vi ut hver dato med sine formater, og vi får følgende når vi kjører programmet:
Det er her vi kan observere alle endringene vi har gjort i måten å formatere datoene på, med dette kan vi gi den større mening og lesbarhet både på menneskelig nivå og for motorer i Database Hva MySQL du må motta standarddatoen i format åååå-LL-dd.
En annen bruk som vi kan gi til de nye dato- og tidsklassene Java er å kunne bruke datoer som kommer fra en tekststreng, disse kan opprettes av en bruker, komme fra en tekstfil, etc. Men det viktige er at vi må manipulere dem, og for dette kan vi bruke alle verktøyene vi har tilgjengelig.
La oss se i følgende kode hvordan vi ved å bruke det vi har sett, kan gjøre endringer i en dato fra en tekststreng.
import java.time. *; importer 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 ("Date / Time:" + dateTakTime); DateTimeFormatter df = DateTimeFormatter.ofPattern ("dd MMM uuuu"); System.out.println (TakenDate + "Med nytt format:" + df.format (TakenDate)); }}
I koden ser vi hvordan vi lager en startdato i en tekststreng, deretter med et objekt av typen LocalDate vi bruker metoden Analyse for å inkorporere tekststrengen i et datotypeobjekt, så skriver vi ut objektet og ser at hvis det tok datoen riktig, gjentar vi den samme prosedyren, men bruker dato og klokkeslett med LocalDateTime.
Til slutt tar vi vårt første opprettede objekt og bruker et nytt format på det, og bekrefter derved at vi har klart å skrive inn og manipulere en dato som vi har etablert fra en tekststreng. La oss se hvordan det ser ut når vi kjører programmet:
Med dette fullfører vi denne opplæringen, vi har lært å jobbe med datoer i Java ved å bruke forbedringene i klassene som den nye versjonen inneholder, som er Java 8Dette kan brukes til mange applikasjoner på systemnivå og til og med for brukergrensesnitt.Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng