1. LocalDateTimekelas

Kelas LocalDateTimemenggabungkan keupayaan LocalDatedan LocalTimekelas: ia menyimpan tarikh dan masa. Objeknya juga tidak boleh diubah, dan kaedahnya serupa dengan kelas LocalDatedan LocalTime.

Mendapat tarikh dan masa semasa

Segala-galanya adalah seperti yang anda jangkakan di sini: kami menggunakan now()kaedah tersebut. Contoh:

Kod Output konsol
LocalDateTime time = LocalDateTime.now();
System.out.println("Now = " + time);

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

Apabila dipaparkan pada skrin, tarikh dan masa dipisahkan oleh huruf T.

Mendapat tarikh dan masa tertentu

Tidak mengejutkan, semuanya serupa dengan LocalDatedan LocalTimekelas — kami menggunakan of()kaedah:

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

Pertama, terdapat parameter yang menentukan tarikh dalam format yang sama seperti dalam LocalDatekelas. Kemudian terdapat parameter yang menentukan masa dalam format yang sama seperti dalam LocalTimekelas. Senarai semua variasi kaedah of()diberikan di bawah:

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

Anda boleh menetapkan tarikh secara langsung atau menetapkannya secara tidak langsung melalui LocalDatedan LocalTimeobjek:

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);
Output konsol
Now = 2019-02-22T10:05:38.465675100
Now = 2019-05-15T12:15

Kelas LocalDateTimemempunyai kaedah untuk mendapatkan elemen tarikh dan/atau masa. Mereka betul-betul mencerminkan kaedah LocalDatedan LocalTimekelas. Kami tidak akan mengulanginya di sini.



2. Instantkelas

Pencipta Java juga tidak melupakan cara sekolah lama.

API Masa Tarikh termasuk kelas Segera untuk bekerja dengan masa yang dimaksudkan untuk proses yang berlaku dalam komputer. Daripada jam, minit dan saat, ia berkaitan dengan saat, milisaat dan nanosaat.

Kelas ini mempunyai dua medan yang mewakili:

  • bilangan saat yang telah berlalu sejak 1 Januari 1970
  • beberapa nanosaat

Adakah kelas itu dibuat untuk pembangun? ya. Itulah sebabnya ia mengira masa dalam masa Unix, yang bermula pada awal tahun 1970.

Orang juga boleh mengatakan bahawa Instantkelas adalah versi ringkas kelas Date, mengekalkan hanya apa yang diperlukan oleh pengaturcara.

Anda boleh mendapatkan Instantobjek dengan cara yang sama seperti LocalTimeobjek:

Instant timestamp = Instant.now();

Di mana timestamppembolehubah Instant, dan merupakan panggilan kepada kaedah statik kelas .Instant.now()now()Instant

Contoh:

Kod Output konsol
Instant timestamp = Instant.now();
System.out.println(timestamp);

2019-02-22T08:42:42.234945300Z

Anda juga boleh mencipta objek baharu menggunakan variasi kaedah of()dengan meneruskan masa yang berlalu sejak 1 Januari 1970:

ofEpochMilli(long milliseconds)
Anda perlu melepasi bilangan milisaat
ofEpochSecond(long seconds)
Anda perlu melepasi bilangan saat
ofEpochSecond(long seconds, long nanos)
Anda perlu melepasi saat dan nanosaat

Kaedah yang terdapat pada Instantobjek

Kelas Segera mempunyai dua kaedah yang mengembalikan nilai medannya:

long getEpochSecond()
Bilangan saat yang telah berlalu sejak 1 Januari 1970
int getNano()
Nanosaat.
long toEpochMilli()
Bilangan milisaat yang telah berlalu sejak 1 Januari 1970

Terdapat juga kaedah untuk mencipta Instantobjek baharu berdasarkan objek sedia ada:

Instant plusSeconds(long)
Menambah saat pada masa semasa
Instant plusMillis(long)
Menambah milisaat
Instant plusNanos(long)
Menambah nanosaat
Instant minusSeconds(long)
Menolak saat
Instant minusMillis(long)
Menolak milisaat
Instant minusNanos(long)
Menolak nanosaat

Contoh:

Kod Output konsol
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