Date.getTime () mengembalikan milidetik sejak 1 Januari 1970. Unixtime adalah detik sejak 1 Januari 1970. Saya biasanya tidak kode di java, tapi saya sedang mengerjakan beberapa perbaikan bug. Saya sudah:
Date now = new Date();
Long longTime = new Long(now.getTime()/1000);
return longTime.intValue();
Apakah ada cara yang lebih baik untuk mendapatkan unixtime di java?
java
unix-timestamp
Gary Richardson
sumber
sumber
long
, janganint
. Tidak ada alasan untuk menggunakanint
cap waktu, kecuali jika Anda menggunakan rincian yang berbeda seperti 1 detik = 4 detik dll. Entah itu, atau sembunyikan kode Anda sehingga generasi mendatang tidak dapat melihat betapa tidak kompetennya Anda.Jawaban:
Hindari pembuatan objek Date w / System.currentTimeMillis () . Membagi dengan 1000 membawa Anda ke zaman Unix.
Seperti disebutkan dalam komentar, Anda biasanya menginginkan panjang primitif (huruf kecil-l panjang) bukan objek kotak panjang (kapital-L Panjang) untuk tipe variabel unixTime.
sumber
Java 8 menambahkan API baru untuk bekerja dengan tanggal dan waktu. Dengan Java 8 Anda bisa menggunakan
Instant.now()
mengembalikan Instan yang mewakili waktu sistem saat ini. DengangetEpochSecond()
Anda mendapatkan waktu detik (waktu unix) dariInstant
.sumber
Instant.now().getEpochSecond()
,new Date().getTime()
danSystem.currentTimeMillis()
import java.time.Instant
jika Anda berada di Scala