1 klasaLocalDateTime

Klasa LocalDateTimełączy w sobie możliwości klas LocalDatei LocalTime: przechowuje zarówno datę jak i godzinę. Jego obiekty są również niezmienne, a jego metody są podobne do tych z klas LocalDatei LocalTime.

Uzyskiwanie bieżącej chwili: data i godzina

Tutaj wszystko jest zgodne z oczekiwaniami: now(). Przykład:

Kod Wyjście na wyświetlaczu
LocalDateTime time = LocalDateTime.now();
System.out.println("Teraz = " + time);

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

Podczas wyświetlania na ekranie data i godzina są oddzielone literą T.

Uzyskanie określonego momentu: daty i godziny

Wszystko jest oczekiwane, podobnie jak klasy LocalDatei LocalTime- stosowana jest metoda of():

... = LocalDateTime.of(год, месяц, день, часы, minutyы, секунды);

Po pierwsze, istnieją parametry, które ustawiają datę w tych samych formatach, co w pliku LocalDate. Następnie są parametry, które określają czas w tych samych formatach, co w pliku LocalTime. Lista wszystkich odmian metody of()znajduje się poniżej:

Metody
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)

Możesz ustawić datę jawnie lub za pomocą obiektów LocalDateand LocalTime:

Kod
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime current = LocalDateTime.of(date, time);
System.out.println("Teraz = " + current);

LocalDateTime date = LocalDateTime.of(2019, Month.MAY, 15, 12, 15, 00);
System.out.println("Teraz = " + date);
Wyjście na wyświetlaczu
Teraz = 2019-02-22T10:05:38.465675100
Teraz = 2019-05-15T12:15

Klasa LocalDateTimeposiada metody pobierania fragmentu daty i/lub czasu. Są dokładnie takie same jak metody klasowe LocalDatei LocalTime. Nie będziemy ich tutaj powielać.



2. KlasaInstant

Również programiści Java nie zapomnieli o zainteresowaniach starej szkoły.

Interfejs Date Time API dodał klasę Instant do pracy z czasem, który jest ukierunkowany na procesy w komputerach. Zamiast godzin, minut i sekund działa w sekundach, milisekundach i nanosekundach.

Ta klasa zawiera dwa pola:

  • liczba sekund , które upłynęły od 1 stycznia 1970 r
  • liczba nanosekund

Czy klasa jest przeznaczona dla programistów? Tak. Dlatego ponownie liczy czas w czasie uniksowym: od początku 1970 roku.

Można nawet powiedzieć, że klasa Instant jest uproszczoną wersją klasy Date: pozostaje tylko to, czego potrzebują programiści.

Możesz uzyskać obiekt Instantw taki sam sposób jak obiekt LocalTime:

Instant timestamp = Instant.now();

Gdzie timestamp jest zmienną klasy Instanti jest wywołaniem metody statycznej w klasie .Instant.now()now()Instant

Przykład:

Kod Wyjście na wyświetlaczu
Instant timestamp = Instant.now();
System.out.println(timestamp);

2019-02-22T08:42:42.234945300Z

Możesz także utworzyć nowy obiekt, korzystając z odmian metody, of()przechodząc w czasie, który upłynął od 1 stycznia 1970 r.:

ofEpochMilli(long milliseconds)
Musisz podać liczbę milisekund
ofEpochSecond(long seconds)
Musisz podać liczbę sekund
ofEpochSecond(long seconds, long nanos)
Potrzebujesz przenieść sekundy i nanosekundy

Metody obiektoweInstant

Klasa Instant ma dwie metody, które zwracają jej wartości:

long getEpochSecond()
Liczba sekund od 1 stycznia 1970 r
int getNano()
Nanosekundy.
long toEpochMilli()
Liczba milisekund od 1 stycznia 1970 r

Istnieją również metody, które są w stanie tworzyć nowe obiekty Instantna podstawie już istniejącego:

Instant plusSeconds(long)
Dodaje sekundy do aktualnego czasu
Instant plusMillis(long)
Dodaje milisekundy
Instant plusNanos(long)
Dodaje nanosekundy
Instant minusSeconds(long)
Odejmuje sekundy
Instant minusMillis(long)
Odejmuje milisekundy
Instant minusNanos(long)
Odejmuje nanosekundy

Przykłady:

Kod Wyjście na wyświetlaczu
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