Paketit java.time, java.util, java.sql ja java.text sisältävät luokat päivämäärän ja ajan esittämiseksi. Seuraavat luokat ovat tärkeitä päivämäärän käsittelyssä Javassa.
Java 8 Date/Time API
Java on ottanut käyttöön uuden Date and Time API:n Java 8:n jälkeen. Java.time-paketti sisältää Java 8 Date and Time -luokat.
- java.time.LocalDate luokka
- java.time.LocalTime luokka
- java.time.LocalDateTime luokka
- java.time.MonthDay luokka
- java.time.OffsetTime-luokka
- java.time.OffsetDateTime luokka
- java.time.Clock-luokka
- java.time.ZonedDateTime luokka
- java.time.ZoneId-luokka
- java.time.ZoneOffset-luokka
- java.time.Year class
- java.time.YearMonth luokka
- java.time.Period-luokka
- java.time.Duration luokka
- java.time.Instant-luokka
- java.time.DayOfWeek enum
- java.time.Month enum
Klassinen päivämäärä/aika API
Mutta klassinen tai vanha Java Date API on myös hyödyllinen. Katsotaanpa klassisten päivämäärä- ja aikaluokkien luetteloa.
- java.util.Date-luokka
- java.sql.Date-luokka
- java.util.Kalenteri luokka
- java.util.GregorianCalendar-luokka
- java.util.TimeZone-luokka
- java.sql.Aikaluokka
- java.sql.Timestamp luokka
Päivämäärän ja kellonajan muotoilu
Voimme muotoilla päivämäärän ja ajan Javassa käyttämällä seuraavia luokkia:
Java Date and Time API:t
Java tarjoaa päivämäärä- ja aikatoiminnot kahden paketin java.time ja java.util avulla. Paketti java.time on otettu käyttöön Java 8:ssa, ja uudet luokat yrittävät voittaa vanhojen java.util.Date- ja java.util.Calendar-luokkien puutteet.
Klassiset Date Time -sovellusliittymäluokat
Ensiluokkaiset luokat ennen Java 8 -julkaisua olivat:
kuinka käyttää mysql-työpöytää
Java.lang.System: Luokka tarjoaa currentTimeMillis()-metodin, joka palauttaa nykyisen ajan millisekunteina. Se näyttää nykyisen päivämäärän ja ajan millisekunteina 1. tammikuuta 1970 alkaen.
java.util.Date: Sitä käytetään tietyn ajan hetken näyttämiseen millisekunnin yksiköllä.
java.util.Kalenteri: Se on abstrakti luokka, joka tarjoaa menetelmiä muuntamiseen esiintymien välillä ja kalenterikenttien käsittelyyn eri tavoin.
java.text.SimpleDateFormat: Se on luokka, jota käytetään muotoilemaan ja jäsentämään päivämäärät ennalta määritetyllä tavalla tai käyttäjän määrittelemällä mallilla.
java.util.TimeZone: Se edustaa aikavyöhykkeen siirtymää ja laskee myös kesäajan.
Nykyisten Date/Time API:iden haitat
Uusi Date Time API Java 8:ssa
Uusi päivämääräsovellusliittymä auttaa voittamaan yllä mainitut haitat vanhojen luokkien kanssa. Se sisältää seuraavat luokat:
java.time.LocalDate: Se edustaa vuotta-kuukausi-päivää ISO-kalenterissa ja on hyödyllinen päivämäärän esittämiseen ilman aikaa. Sitä voidaan käyttää edustamaan vain päivämäärätietoja, kuten syntymäaikaa tai hääpäivää.
java.time.LocalTime: Se toimii vain ajallaan. Se on hyödyllinen kuvaamaan ihmispohjaisia kellonaikoja, kuten elokuvaaikoja tai paikallisen kirjaston aukiolo- ja sulkemisaikoja.
java.time.LocalDateTime: Se käsittelee sekä päivämäärän että kellonajan ilman aikavyöhykettä. Se on LocalDate:n ja LocalTimen yhdistelmä.
java.time.ZonedDateTime: Se yhdistää LocalDateTime-luokan ZoneId-luokassa annettuihin vyöhyketietoihin. Se edustaa täydellistä päivämäärä-aikaleimaa sekä aikavyöhyketietoja.
java.time.OffsetTime: Se käsittelee aikaa vastaavalla aikavyöhykesiirrolla Greenwich/UTC:stä ilman aikavyöhyketunnusta.
java.time.OffsetDateTime: Se käsittelee päivämäärän ja kellonajan vastaavan aikavyöhykkeen poikkeamana Greenwich/UTC:sta ilman aikavyöhyketunnusta.
java.time.Clock : Se tarjoaa pääsyn nykyiseen hetkeen, päivämäärään ja kellonaikaan millä tahansa aikavyöhykkeellä. Vaikka Kello-luokan käyttö on valinnaista, tämän ominaisuuden avulla voimme testata koodiasi muille aikavyöhykkeille tai käyttämällä kiinteää kelloa, jossa aika ei muutu.
java.time.Instant : Se edustaa nanosekunnin alkua aikajanalla (EPOCH:sta lähtien) ja on hyödyllinen aikaleiman luomiseen koneaikaa kuvaamaan. Hetkellä, joka tapahtuu ennen epookkia, on negatiivinen arvo ja hetkellä, joka tapahtuu aikakauden jälkeen, on positiivinen arvo.
java.time.Duration : Kahden hetken ero mitataan sekunteina tai nanosekunteina, eikä siinä käytetä päivämääräpohjaisia rakenteita, kuten vuosia, kuukausia ja päiviä, vaikka luokka tarjoaa menetelmiä, jotka muunnetaan päiviksi, tunteiksi ja minuutteiksi.
java.time.Period : Sitä käytetään päivämäärän välisten erojen määrittämiseen päivämääräperusteisissa arvoissa (vuodet, kuukaudet, päivät).
java.time.ZoneId : Se ilmoittaa aikavyöhykkeen tunnisteen ja antaa säännöt muuntamiseen Instant- ja LocalDateTime-ajan välillä.
java.time.ZoneOffset: Se kuvaa aikavyöhykkeen poikkeamaa Greenwichin/UTC-ajasta.
java.time.format.DateTimeFormatter: Se sisältää erilaisia ennalta määritettyjä muotoilijoita, tai voimme määrittää oman. Siinä on parse()- tai format()-menetelmä päivämäärä-aika-arvojen jäsentämiseen ja muotoiluun.