Kode di bawah ini memberi saya waktu saat ini. Tetapi tidak mengatakan apa-apa tentang milidetik.
public static String getCurrentTimeStamp() {
SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//dd/MM/yyyy
Date now = new Date();
String strDate = sdfDate.format(now);
return strDate;
}
Saya mendapatkan tanggal dalam format 2009-09-22 16:47:08
(YYYY-MM-DD HH: MI: Sec) .
Tapi saya ingin mengambil waktu saat ini dalam format 2009-09-22 16:47:08.128
((YYYY-MM-DD HH: MI: Sec.Ms) - di mana 128 memberitahu milidetik.
SimpleTextFormat
akan bekerja dengan baik. Di sini satuan waktu terendah adalah yang kedua, tetapi bagaimana cara mendapatkan milidetik juga?
java.util.Date
,java.util.Calendar
, danjava.text.SimpleTextFormat
sekarang warisan , digantikan oleh java.time kelas. Lihat Tutorial oleh Oracle .Jawaban:
sumber
toString(String format)
metode ini ? Thejava.util.Date
tampaknya tidak memilikinya. Apakah Anda mengacu pada API Waktu Joda? Tetapi satu manfaat yang mungkin adalah penggunaan kembali objek formatter yang sama. Lain adalah Anda tidak perlu menambahkan API - Kelas tanggal adalah kelas perpustakaan Java standar.LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"))
Java one liner
dalam gaya JDK8
sumber
Anda hanya perlu menambahkan bidang milidetik dalam string format tanggal Anda:
The API doc dari SimpleDateFormat menggambarkan format string secara rinci.
sumber
coba ini:-
http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
atau
sumber
tl; dr
waktu java
Di Java 8 dan yang lebih baru, kami memiliki kerangka java.time yang dibangun ke dalam Java 8 dan yang lebih baru. Kelas-kelas baru menggantikan kelas java.util.Date/.Calendar tua yang merepotkan. Kelas-kelas baru terinspirasi oleh kerangka kerja Joda-Time yang sangat sukses , dimaksudkan sebagai penggantinya, serupa dalam konsepnya tetapi dirancang ulang. Didefinisikan oleh JSR 310 . Diperpanjang oleh proyek ThreeTen-Extra . Lihat Tutorialnya .
Perlu diketahui bahwa java.time mampu resolusi nanosecond (9 tempat desimal dalam sepersekian detik), dibandingkan resolusi milidetik (3 tempat desimal) dari java.util.Date & Joda-Time. Jadi ketika memformat hanya menampilkan 3 tempat desimal, Anda bisa menyembunyikan data.
Jika Anda ingin menghilangkan mikrodetik atau nanodetik dari data Anda, potong.
Kelas java.time menggunakan format ISO 8601 secara default saat parsing / menghasilkan string. A
Z
pada akhirnya adalah kependekan dariZulu
, dan berarti UTC .An
Instant
mewakili momen pada timeline di UTC dengan resolusi hingga nanodetik . Menangkap momen saat ini di Java 8 terbatas pada milidetik , dengan implementasi baru di Jawa 9 menangkap hingga nanodetik tergantung pada kemampuan jam perangkat keras komputer Anda.Ganti yang
T
di tengah dengan spasi, dan yangZ
tidak ada, untuk mendapatkan hasil yang diinginkan.Karena Anda tidak peduli dengan menyertakan offset atau zona waktu, buat tanggal-waktu "lokal" tidak terkait dengan lokalitas tertentu.
Joda-Time
Perpustakaan Joda-Time yang sangat sukses adalah inspirasi untuk kerangka java.time. Disarankan untuk bermigrasi ke java.time saat nyaman.
Format ISO 8601 mencakup milidetik, dan merupakan default untuk perpustakaan Joda-Time 2.4.
Saat dijalankan ...
Anda juga dapat meminta fraksi milidetik per detik sebagai angka, jika diperlukan:
sumber
Saya akan menggunakan sesuatu seperti ini:
Variabel
dateTime
bisa berupa tanggal dan / atau nilai waktu, lihat JavaDoc untukFormatter
.sumber
Cara termudah adalah dengan (sebelum Java 8) digunakan,
Tapi SimpleDateFormat tidak aman utas. Baik java.util.Date . Ini akan mengarah pada potensi masalah konkurensi bagi pengguna. Dan ada banyak masalah dalam desain yang ada. Untuk mengatasinya sekarang di Java 8 kami memiliki paket terpisah yang disebut java.time . Ini Java SE 8 Tanggal dan Waktu dokumen memiliki gambaran yang baik tentang hal itu.
Jadi di Java 8 sesuatu seperti di bawah ini akan melakukan trik (untuk memformat tanggal / waktu saat ini),
Dan satu hal yang perlu diperhatikan adalah ini dikembangkan dengan bantuan perpustakaan pihak ketiga yang populer saat itu ,
Tapi sekarang
joda-time
sudah menjadi usang dan meminta pengguna untuk bermigrasi ke yang barujava.time
.Lagi pula setelah mengatakan itu,
Jika Anda memiliki instance Kalender, Anda dapat menggunakan di bawah ini untuk mengubahnya menjadi yang baru
java.time
,Jika Anda memiliki objek Date,
Jika Anda hanya memiliki zaman milidetik,
sumber
Untuk melengkapi jawaban di atas, berikut adalah contoh kerja kecil dari program yang mencetak waktu dan tanggal saat ini, termasuk milidetik.
sumber
Gunakan ini untuk mendapatkan waktu Anda saat ini dalam format yang ditentukan:
sumber
java.util.Date
,java.util.Calendar
, danjava.text.SimpleDateFormat
sekarang warisan , digantikan oleh java.time kelas dibangun ke Jawa 8 dan kemudian. Lihat Tutorial oleh Oracle .Saya punya contoh sederhana di sini untuk menampilkan tanggal dan waktu dengan Millisecond ......
sumber
Saya tidak melihat referensi untuk ini:
format di atas juga bermanfaat.
http://www.java2s.com/Tutorials/Java/Date/Date_Format/Format_date_in_yyyyMMddHHmmssSSS_format_in_Java.htm
sumber
Jawab:
sumber
Doc di Java 8 menamakannya fraksi-of-detik , sedangkan di Jawa 6 dinamai milidetik . Ini membuat saya bingung
sumber
java.text (sebelum java 8)
waktu java
sumber
Anda bisa mendapatkannya dalam format yang Anda inginkan.
sumber