Tukar Masa ke Mil dalam sekejap di Jawa

1. Gambaran keseluruhan

Dalam tutorial ringkas ini, kami akan menerangkan pelbagai cara menukar masa menjadi Unix-zaman milisaat di Java .

Lebih khusus lagi, kami akan menggunakan:

  • Core Java's java.util.Date dan Calendar
  • API Tarikh dan Masa Java 8
  • Perpustakaan Joda-Time

2. Java Teras

2.1. Menggunakan Tarikh

Pertama, mari kita tentukan sifat milis yang mempunyai nilai rawak milisaat:

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

Kami akan menggunakan nilai ini untuk memulakan pelbagai objek kami dan mengesahkan hasil kami.

Seterusnya, mari kita mulakan dengan objek Tarikh :

Date date = // implementation details

Sekarang, kita sudah bersedia untuk menukar tarikh ke dalam milisaat dengan hanya menyeru () getTime kaedah :

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

2.2. Menggunakan Kalendar

Begitu juga, jika kita mempunyai objek Kalendar , kita dapat menggunakan kaedah getTimeInMillis () :

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

3. Java 8 Tarikh Masa API

3.1. Menggunakan Segera

Secara ringkas, Instant adalah titik dalam garis masa zaman Java.

Kita dapat masa sekarang dalam milisaat dari Sekejap :

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

Hasilnya, kaedah toEpochMilli () mengembalikan bilangan milisaat yang sama seperti yang kita tentukan sebelumnya.

3.2. Menggunakan LocalDateTime

Begitu juga, kita dapat menggunakan API Tarikh dan Waktu Java 8 untuk menukar LocalDateTime menjadi milisaat:

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

Pertama, kami membuat contoh tarikh semasa. Selepas itu, kami menggunakan kaedah toEpochMilli () untuk menukar ZonedDateTime menjadi milisaat.

Seperti yang kita ketahui, LocalDateTime tidak mengandungi maklumat mengenai zon waktu. Dengan kata lain, kita tidak boleh mendapatkan milisaat langsung dari contoh LocalDateTime .

4. Joda-Masa

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

4.1. Menggunakan Segera

Pertama, kita dapat memperoleh sistem milisaat semasa dari contoh kelas Joda-Time Instant menggunakan kaedah getMillis () :

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

4.2. Menggunakan DateTime

Selain itu, jika kita mempunyai contoh Joda-Time DateTime :

DateTime jodaDateTime = // implementation details

Kemudian kita dapat mengambil milisaat dengan kaedah getMillis () :

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

5. Kesimpulan

Kesimpulannya, artikel ini menunjukkan cara menukar masa menjadi milisaat di Java.

Akhirnya, seperti biasa, kod lengkap untuk artikel ini terdapat di GitHub.