1. LocalDateTimesınıf

Sınıf , ve sınıflarının LocalDateTimeyeteneklerini birleştirir : hem tarih hem de saat saklar. Nesneleri de değişmezdir ve yöntemleri ve sınıflarınınkine benzer .LocalDateLocalTimeLocalDateLocalTime

Geçerli tarih ve saati alma

Burada her şey beklediğiniz gibi: yöntemi kullanıyoruz now(). Örnek:

kod Konsol çıkışı
LocalDateTime time = LocalDateTime.now();
System.out.println("Now = " + time);

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

Ekranda görüntülendiğinde, tarih ve saat harfle ayrılır T.

Belirli bir tarih ve saat alma

LocalDateŞaşırtıcı olmayan bir şekilde, her şey ve sınıflarına benzer LocalTime— yöntemi kullanıyoruz of():

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

İlk olarak, sınıftaki ile aynı formatlarda tarihi belirten parametreler vardır LocalDate. Sonra, zamanı sınıftakiyle aynı biçimlerde belirten parametreler vardır LocalTime. Yöntemin tüm varyasyonlarının bir listesi of()aşağıda verilmiştir:

Yöntemler
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)

LocalDateTarihi doğrudan veya dolaylı olarak ve nesneleri aracılığıyla ayarlayabilirsiniz LocalTime:

kod
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);
Konsol çıkışı
Now = 2019-02-22T10:05:38.465675100
Now = 2019-05-15T12:15

Sınıf, LocalDateTimetarih ve/veya saat öğelerini almak için yöntemlere sahiptir. LocalDateve sınıflarının yöntemlerini tam olarak yansıtırlar LocalTime. Onları burada tekrar etmeyeceğiz.



2. Instantsınıf

Java'nın yaratıcıları da eski okul yöntemlerini unutmadı.

Date Time API, bilgisayarlarda meydana gelen işlemlere yönelik zamanla çalışmak için bir Anında sınıf içerir. Saat, dakika ve saniye yerine saniye, milisaniye ve nanosaniye ile ilgilenir .

Bu sınıf, şunları temsil eden iki alana sahiptir:

  • 1 Ocak 1970'ten bu yana geçen saniye sayısı
  • birkaç nanosaniye

Sınıf, geliştiriciler için mi yapıldı? Evet. Bu nedenle, zamanı 1970'lerin başında başlayan Unix-time'da hesaplar.

InstantHatta sınıfın, sınıfın basitleştirilmiş bir versiyonu olduğu ve yalnızca programcıların ihtiyaç duyduğu şeyi elinde tuttuğu bile söylenebilir Date.

InstantBir nesneyi, bir nesneyle tamamen aynı şekilde elde edebilirsiniz LocalTime:

Instant timestamp = Instant.now();

Nerede timestampbir Instantdeğişkendir ve sınıfın statik yöntemine yapılan bir çağrıdır .Instant.now()now()Instant

Örnek:

kod Konsol çıkışı
Instant timestamp = Instant.now();
System.out.println(timestamp);

2019-02-22T08:42:42.234945300Z

of()1 Ocak 1970'ten bu yana geçen süreyi geçerek yöntemin varyasyonlarını kullanarak yeni bir nesne de oluşturabilirsiniz :

ofEpochMilli(long milliseconds)
Milisaniye sayısını geçmeniz gerekiyor
ofEpochSecond(long seconds)
Saniye sayısını geçmeniz gerekiyor
ofEpochSecond(long seconds, long nanos)
Saniyeleri ve nanosaniyeleri geçmeniz gerekiyor

InstantNesnelerde kullanılabilen yöntemler

Instant sınıfı, alanlarının değerlerini döndüren iki yönteme sahiptir:

long getEpochSecond()
1 Ocak 1970'ten bu yana geçen saniye sayısı
int getNano()
nanosaniye.
long toEpochMilli()
1 Ocak 1970'ten bu yana geçen milisaniye sayısı

InstantMevcut bir nesneyi temel alarak yeni bir nesne yaratmanın yöntemleri de vardır :

Instant plusSeconds(long)
Geçerli zamana saniye ekler
Instant plusMillis(long)
milisaniye ekler
Instant plusNanos(long)
nanosaniye ekler
Instant minusSeconds(long)
Saniyeleri çıkarır
Instant minusMillis(long)
Milisaniyeyi çıkarır
Instant minusNanos(long)
Nanosaniyeleri çıkarır

Örnekler:

kod Konsol çıkışı
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