A java.time, java.util, java.sql és java.text csomagok osztályokat tartalmaznak a dátum és az idő megjelenítésére. A következő osztályok fontosak a dátum kezeléséhez Java-ban.
Java 8 Date/Time API
A Java új Date and Time API-t vezetett be a Java 8 óta. A java.time csomag Java 8 Date and Time osztályokat tartalmaz.
- java.time.LocalDate osztály
- java.time.LocalTime osztály
- java.time.LocalDateTime osztály
- java.time.MonthDay osztály
- java.time.OffsetTime osztály
- java.time.OffsetDateTime osztály
- java.time.Óra osztály
- java.time.ZonedDateTime osztály
- java.time.ZoneId osztály
- java.time.ZoneOffset osztály
- java.time.Year class
- java.time.YearMonth osztály
- java.time.Period osztály
- java.time.Időtartam osztály
- java.time.Instant osztály
- java.time.DayOfWeek enum
- java.time.Month enum
Klasszikus dátum/idő API
De a klasszikus vagy régi Java Date API is hasznos. Lássuk a klasszikus dátum és idő osztályok listáját.
- java.util.Dátum osztály
- java.sql.Dátum osztály
- java.util.Calendar class
- java.util.GregorianCalendar osztály
- java.util.TimeZone osztály
- java.sql.Time osztály
- java.sql.Timestamp osztály
Dátum és idő formázása
A dátumot és az időt a következő osztályok használatával formázhatjuk Java nyelven:
Java dátum és idő API-k
A Java a dátum és az idő funkcióit két java.time és java.util csomag segítségével biztosítja. A Java 8-ban bevezetik a java.time csomagot, az újonnan bevezetett osztályok pedig az örökölt java.util.Date és java.util.Calendar osztályok hiányosságait próbálják kiküszöbölni.
Klasszikus dátumidő API osztályok
A Java 8 megjelenése előtti elsődleges osztályok a következők voltak:
hogyan lehet zenét letölteni
Java.lang.System: Az osztály biztosítja a currentTimeMillis() metódust, amely az aktuális időt ezredmásodpercben adja vissza. Az aktuális dátumot és időt ezredmásodpercben mutatja 1970. január 1-től.
java.util.Dátum: Ez az idő konkrét pillanatának megjelenítésére szolgál, ezredmásodperces egységben.
java.util.Calendar: Ez egy absztrakt osztály, amely módszereket biztosít a példányok közötti konvertáláshoz és a naptármezők különböző módon történő kezeléséhez.
java.text.SimpleDateFormat: Ez egy osztály, amelyet a dátumok formázására és elemzésére használnak előre meghatározott módon vagy felhasználó által meghatározott mintában.
java.util.TimeZone: Ez egy időzóna-eltolást jelent, és a nyári időszámítást is kiszámolja.
A meglévő dátum/idő API-k hátrányai
Új Date Time API Java 8-ban
Az új dátum API segít leküzdeni a fent említett hátrányokat az örökölt osztályokkal kapcsolatban. A következő osztályokat tartalmazza:
java.time.LocalDate: Év-hónap-napot jelöl az ISO-naptárban, és hasznos a dátum idő nélküli ábrázolására. Használható csak dátumadatok megjelenítésére, például születési dátum vagy esküvő dátuma.
java.time.LocalTime: Csak időben foglalkozik. Hasznos az emberi alapú napszakok, például a filmes idők, vagy a helyi könyvtár nyitvatartási és zárási idejének megjelenítéséhez.
java.time.LocalDateTime: A dátumot és az időt is kezeli, időzóna nélkül. Ez a LocalDate és a LocalTime kombinációja.
java.time.ZonedDateTime: Egyesíti a LocalDateTime osztályt a ZoneId osztályban megadott zónainformációkkal. Ez egy teljes dátum-időbélyegzőt jelent az időzóna információival együtt.
java.time.OffsetTime: Az időt a Greenwich/UTC-től megfelelő időzóna-eltolással kezeli, időzónaazonosító nélkül.
java.time.OffsetDateTime: A dátumot és az időt a Greenwich/UTC-tól megfelelő időzóna-eltolásokkal kezeli, időzónaazonosító nélkül.
java.time.Clock: Hozzáférést biztosít az aktuális pillanathoz, dátumhoz és időhöz bármely adott időzónában. Bár az Óra osztály használata nem kötelező, ez a funkció lehetővé teszi számunkra, hogy teszteljük a kódot más időzónákra, vagy egy rögzített óra használatával, ahol az idő nem változik.
java.time.Instant : Ez egy nanoszekundum kezdetét jelenti az idővonalon (az EPOCH óta), és hasznos időbélyeg létrehozásához a gépi idő megjelenítésére. Az epocha előtt bekövetkező pillanat negatív értékű, a korszak után bekövetkező pillanat pedig pozitív értékű.
java.time.Duration : A két pillanat közötti különbség, amelyet másodpercben vagy nanoszekundumban mérnek, és nem használ dátumalapú konstrukciókat, például éveket, hónapokat és napokat, bár az osztály olyan módszereket biztosít, amelyek napokra, órákra és percekre konvertálják.
java.time.Period : A dátumok közötti különbség meghatározására szolgál dátum alapú értékekben (év, hónap, nap).
java.time.ZoneId: Meghatározza az időzóna azonosítóját, és szabályokat ad az Instant és a LocalDateTime közötti konvertáláshoz.
java.time.ZoneOffset: Leírja az időzóna eltolását a greenwichi/UTC időtől.
java.time.format.DateTimeFormatter: Különféle előre definiált formázókkal áll elő, vagy definiálhatjuk a sajátunkat. Parse() vagy format() metódussal rendelkezik a dátum és idő értékek elemzéséhez és formázásához.