Java 8 dátum és idő

dátum és idő feldolgozása meglehetősen nehéz feladat. A világban vannak nagyszámú időzónák, hogy rendszeresen frissítik. Meg kell figyelembe venni az átmenetet a nyári időszámítás, ugrás másodperc. szökőéveket és így tovább.







Java már jó néhány éve, és megpróbál létrehozni osztályok kezelése dátumokat már több. Itt vagyok csak általánosságban írja le három módja van:

    • java.util.Date - a legősibb módja. A legtöbb módszer van jelölve elavult, de az osztály maga is használják elég gyakran.
    • java.util.Calendar - általában használható java. util. Date.
    • java.time csomag - új módon, sokkal nagyobb, mint az előző szempontjából kényelmet és funkcionalitást, de még nem használt olyan gyakran (legalábbis én ritkán találkozott.

java.util.Date

A legősibb módja. Ha megnézzük a módszer leírása java.util.Date. látni fogja, hogy a legtöbb módszer meghatározott időpontban. Nagyon hasznos, és fut egy kicsit.

Visszaadja az időzóna társított e példányának naptár.

A legkényelmesebb és a modern munkamódszer a dátumot és az időt. Onnan származik a Joda-Time könyvtár.

Két alapvető módon reprezentáló időben. Ennek egyik módja az idő emberi szempontból, többek között az év, hónap, nap, óra, perc, másodperc. A második módszer a megmunkálási idő, folyamatosan méri az időt az elején, az úgynevezett egy korszakalkotó, az ns. Date-Time csomag tartalmaz egy nagy osztályok száma, ami a dátumot és az időt. Egyes osztályok a Date-Time API számítógépes idő, néhány ember.

Először is, hogy milyen szempontokat a dátumot és az időt, amit akar, majd válassza ki az osztályt vagy osztályokat, amelyek megfelelnek az Ön igényeinek.

Például, akkor válassza ki a java. időben. LOCALDATE tárolja a születési dátum, mivel sok ember születésnapja ugyanazon a napon, függetlenül attól, hogy azok a születési hely, vagy a másik végén a Föld. Ha azt szeretnénk, asztrológiai időt, akkor java. időben. LocalDateTime. megjeleníthető a dátum és idő a születés, vagy java. időben. ZonedDateTime. amely tartalmaz továbbá egy időzóna. Ha létrehoz egy időbélyeg, akkor valószínű, hogy akkor érdemes használni java. időben. Instant. amely lehetővé teszi, hogy hasonlítsa össze időbélyeg a másiktól.

Összefoglaló táblázat az osztályok java csomagot. ideje:

Osztály vagy felsorolás

* Seconds tartják pontosak ns
** Ez az osztály nem tárolja ezt az információt, de van egy módszer, hogy az idő nekik.
*** Amikor időszak adunk ZonedDateTime. figyelembe veszi az átmenet a téli / nyári időszámítás és a helyi időeltolódást.







java.time.DayOfWeek

Számlálás java.time.DayOfWeek áll hét állandók leírja a nap a héten. Integer értékek konstansok 1 (hétfő) és 7 vége (vasárnap).

Hétfő (1., hétfő)
Kedd (2., kedd)
Szerda (közepes 3)
Csütörtökön (csütörtökön 4)
Péntek (péntek 5)
Szombat (szombat, 6)
VASÁRNAP (vasárnap, 7)

Használhatja a módszer public String getDisplayName (textstyle stílusban. Nyelv locale) a nevét a hét napjainak megfelelően a felhasználó által választott nyelvi. Átadása java. időben. formátumban. Textstyle lehetővé teszi, hogy adja meg a vonal típusát: FULL. Keskeny (általában egy betű), SHORT (rövidítése).

java osztályokat. időben. ZonedDateTime és java. időben. OffsetDateTime átalakíthatjuk egy példányának java. időben. Instant. mivel pont egy adott pillanatban. Azonban az inverz transzformációt kell határozni azokat az időzónát, vagy ellensúlyozni.

Formázása és átalakítása húrok

Ideiglenes osztályai Date-Time API tartalmazza módszerek és elemezni feldolgozási formátum a dátumot és / vagy időt a vonal és a vonal a formázott kimenetet. Ezek a módszerek fogadja egy példánya java.time.format.DateTimeFormatter. DateTimeFormatter osztály tartalmaz egy számos előre formázóknál, akkor is meghatározza a saját.

feldolgozni és méret módszerek dobni egy kivételt, ha az átváltás során semmilyen probléma. A vonal elemzési kód kellene fogni kivételt java.time.format.DateTimeParseException. és a formázás kódot kell fogni java.time.format.DateTimeException .Ezek kivételek bejelölve, ezért a fordító nem követeli meg, hogy a kötelező kezelést.

Osztály java. időben. formátumban. DateTimeFormatter megváltoztathatatlan és szálbiztosak. Meg lehet rendelni egy állandó, ha szükséges.

Osztályai java. alkalommal lehet használni a java. util. A formázó és a String. formátumban. mint a régi osztályok java. util. Dátum és java. util. Naptár.

java.time.temporal.TemporalAdjuster

Java.time.temporal.TemporalAdjuster felület tartalmaz módszereket, melyek érték és visszaküldi rendezi bármilyen ajánlat elvét.

Class java.time.temporal.TemporalAdjusters tartalmaz előre definiált equalizereket dátumot és az időt, hogy megtalálja az első vagy utolsó napján a hónap első vagy utolsó nap az évben, a múlt szerdán a hónap, és így tovább. D.

Ezek a számítások nem veszik figyelembe az időzónák közötti különbséget. Például ha született Ausztráliában, de most él Bangalore, akkor kissé befolyásolja a számítás az életkor. Ilyen helyzetekben használja az időszak ZonedDateTime.

java.time.Clock

Számos osztály, dátum és idő közé tartozik az eljárás most (). amely létrehoz egy objektumot az aktuális dátumot és az időt az óra, és az alapértelmezett időzónát. Ezek az objektumok is tartalmaznak módszerek most (Clock). amely lehetővé teszi, hogy adja át egy másik java. időben. Óra.

Az aktuális dátum és idő függ az időzónát globális alkalmazáshoz szükséges lezárható. hogy biztosítsák a létrehozás dátuma / ideje a megfelelő időzónát. Annak ellenére, hogy a JAVA használatát. időben. Óra nem kötelező, de ez segít teszteli a kódot egy másik időzónát, vagy egy meghatározott ideig.

Óra absztrakt osztály, így nem hozhat létre egy példányát. A következő gyári módszer hasznos lehet a vizsgálathoz:

  • Clock.offset (Clock, duration) visszatér egy órát, ami ellensúlyozza a megadott időtartam.
  • Clock.systemUTC () visszatér az óra, amely az időzóna Greenwich / UTC.
  • Clock.fixed (Instant, ZoneId) mindig visszatér ugyanaz Instant. Erre Óra időben nem megy, akkor megállt.

További bejegyzések ebben a szakaszban:




Kapcsolódó cikkek