1. LocalDateTimeosztály

Az osztály egyesíti az és osztályok LocalDateTimeképességeit : dátumot és időt is tárol. Objektumai is megváltoztathatatlanok, metódusai hasonlóak a és osztályokéhoz.LocalDateLocalTimeLocalDateLocalTime

Az aktuális dátum és idő lekérése

Itt minden úgy van, ahogy az elvárható: a now()módszert használjuk. Példa:

Kód Konzol kimenet
LocalDateTime time = LocalDateTime.now();
System.out.println("Now = " + time);

Now = 2019-02-22T09:49:19.275039200

Amikor megjelenik a képernyőn, a dátum és az idő betűvel van elválasztva T.

Konkrét dátum és idő lekérése

Nem meglepő módon minden hasonló a LocalDateés osztályokhoz – a módszert LocalTimehasználjuk :of()

... = LocalDateTime.of(year, month, day, hours, minutes, seconds);

Először is vannak olyan paraméterek, amelyek ugyanazokban a formátumokban határozzák meg a dátumot, mint az osztályban LocalDate. Aztán vannak olyan paraméterek, amelyek az osztályban megadott formátumokban határozzák meg az időt LocalTime. A módszer összes változatának listája az of()alábbiakban található:

Mód
of (int year, int month, int day, int hour, int minute)
of (int year, int month, int day, int hour, int minute, int second)
of (int year, int month, int day, int hour, int minute, int second, int nano)
of (int year, Month month, int day, int hour, int minute)
of (int year, Month month, int day, int hour, int minute, int second)
of (int year, Month month, int day, int hour, int minute, int second, int nano)
of (LocalDate date, LocalTime time)

Beállíthatja a dátumot közvetlenül vagy közvetetten LocalDatea és LocalTimeobjektumok segítségével:

Kód
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime current = LocalDateTime.of(date, time);
System.out.println("Now = " + current);

LocalDateTime date = LocalDateTime.of(2019, Month.MAY, 15, 12, 15, 00);
System.out.println("Now = " + date);
Konzol kimenet
Now = 2019-02-22T10:05:38.465675100
Now = 2019-05-15T12:15

Az LocalDateTimeosztálynak vannak metódusai egy dátum és/vagy idő elemeinek lekérésére. LocalDatePontosan tükrözik a és osztályok metódusait LocalTime. Ezeket itt nem ismételjük meg.



2. Instantosztály

A Java alkotói sem feledkeztek meg a régi iskolai módszerekről.

A Date Time API tartalmaz egy Instant osztályt a számítógépekben előforduló folyamatokhoz szánt idővel való munkavégzéshez. Órák, percek és másodpercek helyett másodpercekkel, ezredmásodpercekkel és nanoszekundumokkal foglalkozik .

Ennek az osztálynak két mezője van, amelyek a következőket képviselik:

  • az 1970. január 1-je óta eltelt másodpercek száma
  • több nanoszekundum

Az osztály fejlesztőknek készült? Igen. Ezért számolja az időt Unix-időben, ami 1970 elején kezdődik.

Akár azt is mondhatnánk, hogy az Instantosztály az osztály leegyszerűsített változata Date, amely csak azt tartja meg, amire a programozóknak szüksége van.

InstantEgy objektumot pontosan ugyanúgy kaphat meg, mint egy LocalTimeobjektumot:

Instant timestamp = Instant.now();

Ahol timestampegy Instantváltozó, és az osztály statikus metódusának hívása .Instant.now()now()Instant

Példa:

Kód Konzol kimenet
Instant timestamp = Instant.now();
System.out.println(timestamp);

2019-02-22T08:42:42.234945300Z

Létrehozhat új objektumot a of()metódus különböző változataival is, ha átadja az 1970. január 1-je óta eltelt időt:

ofEpochMilli(long milliseconds)
Át kell adnia az ezredmásodpercek számát
ofEpochSecond(long seconds)
Át kell adnia a másodpercek számát
ofEpochSecond(long seconds, long nanos)
Át kell adnia a másodperceket és a nanoszekundumokat

InstantAz objektumokon elérhető módszerek

Az Instant osztálynak két metódusa van, amelyek visszaadják a mezőinek értékeit:

long getEpochSecond()
Az 1970. január 1. óta eltelt másodpercek száma
int getNano()
Nanoszekundum.
long toEpochMilli()
Az 1970. január 1. óta eltelt ezredmásodpercek száma

Vannak módszerek is új Instantobjektumok létrehozására egy meglévő alapján:

Instant plusSeconds(long)
Másodperceket ad az aktuális időhöz
Instant plusMillis(long)
Ezredmásodperceket ad hozzá
Instant plusNanos(long)
Nanoszekundumokat ad hozzá
Instant minusSeconds(long)
Kivonja a másodperceket
Instant minusMillis(long)
Ezredmásodperceket von le
Instant minusNanos(long)
Kivonja a nanoszekundumot

Példák:

Kód Konzol kimenet
Instant timestamp = Instant.now();
System.out.println(timestamp);

long n = timestamp.toEpochMilli();
Instant time = Instant.ofEpochMilli(n);
System.out.println(time);

2019-02-22T09:01:20.535344Z



2019-02-22T09:01:20.535Z