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.