Ubah Waktu ke Milidetik di Jawa

1. Ikhtisar

Dalam tutorial singkat ini, kami akan mengilustrasikan berbagai cara untuk mengubah waktu menjadi milidetik Unix-epoch di Java .

Lebih khusus lagi, kami akan menggunakan:

  • Java.util.Date dan Kalender Inti Java
  • API Tanggal dan Waktu Java 8
  • Perpustakaan Joda-Time

2. Inti Java

2.1. Menggunakan Tanggal

Pertama, mari kita tentukan properti milis yang memiliki nilai acak dalam milidetik:

long millis = 1556175797428L; // April 25, 2019 7:03:17.428 UTC

Kami akan menggunakan nilai ini untuk menginisialisasi berbagai objek kami dan memverifikasi hasil kami.

Selanjutnya, mari kita mulai dengan objek Tanggal :

Date date = // implementation details

Sekarang, kita siap untuk mengubah tanggal ke dalam milidetik dengan hanya menyerukan () getTime metode :

Assert.assertEquals(millis, date.getTime());

2.2. Menggunakan Kalender

Demikian juga, jika kita memiliki objek Calendar , kita bisa menggunakan metode getTimeInMillis () :

Calendar calendar = // implementation details Assert.assertEquals(millis, calendar.getTimeInMillis());

3. API Tanggal Waktu Java 8

3.1. Menggunakan Instan

Sederhananya, Instan adalah satu titik dalam timeline zaman Java.

Kita bisa mendapatkan waktu saat ini dalam milidetik dari Instan :

java.time.Instant instant = // implementation details Assert.assertEquals(millis, instant.toEpochMilli());

Akibatnya, metode toEpochMilli () mengembalikan jumlah milidetik yang sama seperti yang kita definisikan sebelumnya.

3.2. Menggunakan LocalDateTime

Demikian pula, kita dapat menggunakan Date and Time API Java 8 untuk mengubah LocalDateTime menjadi milidetik:

LocalDateTime localDateTime = // implementation details ZonedDateTime zdt = ZonedDateTime.of(localDateTime, ZoneId.systemDefault()); Assert.assertEquals(millis, zdt.toInstant().toEpochMilli());

Pertama, kami membuat instance dari tanggal saat ini. Setelah itu, kami menggunakan metode toEpochMilli () untuk mengubah ZonedDateTime menjadi milidetik.

Seperti yang kita ketahui, LocalDateTime tidak berisi informasi tentang zona waktu. Dengan kata lain, kita tidak bisa mendapatkan milidetik langsung dari instance LocalDateTime .

4. Waktu-Joda

Meskipun Java 8 menambahkan banyak fungsi Joda-Time, kami mungkin ingin menggunakan opsi ini jika kami menggunakan Java 7 atau sebelumnya.

4.1. Menggunakan Instan

Pertama, kita bisa mendapatkan milidetik sistem saat ini dari instance kelas Joda-Time Instant menggunakan metode getMillis () :

Instant jodaInstant = // implementation details Assert.assertEquals(millis, jodaInstant.getMillis());

4.2. Menggunakan DateTime

Selain itu, jika kami memiliki instance Joda-Time DateTime :

DateTime jodaDateTime = // implementation details

Kemudian kita bisa mengambil milidetik dengan metode getMillis () :

Assert.assertEquals(millis, jodaDateTime.getMillis());

5. Kesimpulan

Sebagai kesimpulan, artikel ini menunjukkan cara mengubah waktu menjadi milidetik di Java.

Terakhir, seperti biasa, kode lengkap untuk artikel ini tersedia di GitHub.