Saya tidak sepenuhnya yakin apa yang Anda maksud dengan "milidetik saat ini" tetapi saya akan menganggap itu adalah jumlah milidetik sejak "zaman", yaitu tengah malam, 1 Januari 1970 UTC.
Jika Anda ingin menemukan jumlah milidetik sejak zaman sekarang, maka gunakan System.currentTimeMillis()
seperti yang ditunjukkan Anubian Noob . Jika demikian, tidak ada alasan untuk menggunakan API java.time baru untuk melakukan ini.
Namun, mungkin Anda sudah memiliki LocalDateTime
objek serupa dari suatu tempat dan Anda ingin mengubahnya menjadi milidetik sejak zamannya. Tidak mungkin untuk melakukan itu secara langsung, karena LocalDateTime
keluarga objek tidak memiliki gagasan tentang zona waktu mereka. Dengan demikian, informasi zona waktu perlu diberikan untuk menemukan waktu relatif terhadap zaman, yaitu di UTC.
Misalkan Anda memiliki yang LocalDateTime
seperti ini:
LocalDateTime ldt = LocalDateTime.of(2014, 5, 29, 18, 41, 16);
Anda perlu menerapkan informasi zona waktu, memberikan a ZonedDateTime
. Saya berada di zona waktu yang sama dengan Los Angeles, jadi saya akan melakukan sesuatu seperti ini:
ZonedDateTime zdt = ldt.atZone(ZoneId.of("America/Los_Angeles"));
Tentu saja, ini membuat asumsi tentang zona waktu. Dan ada kasus tepi yang dapat terjadi, misalnya, jika waktu lokal kebetulan menyebutkan waktu di dekat transisi Daylight Saving Time (Summer Time). Mari kita kesampingkan ini, tetapi Anda harus menyadari bahwa kasus ini ada.
Bagaimanapun, jika Anda bisa mendapatkan yang valid ZonedDateTime
, Anda dapat mengonversinya ke jumlah milidetik sejak zaman, seperti:
long millis = zdt.toInstant().toEpochMilli();
System.currentTimeMillis()
?