tl; dr
Instant.now()
.toString()
2016-05-06T23: 24: 25.694Z
ZonedDateTime
.now
(
ZoneId.of( "America/Montreal" )
)
.format( DateTimeFormatter.ISO_LOCAL_DATE_TIME )
.replace( "T" , " " )
2016-05-06 19: 24: 25.694
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.
Instant instant2 = instant.truncatedTo( ChronoUnit.MILLIS ) ;
Kelas java.time menggunakan format ISO 8601 secara default saat parsing / menghasilkan string. A Z
pada akhirnya adalah kependekan dari Zulu
, 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.
Instant instant = Instant.now (); // Current date-time in UTC.
String output = instant.toString ();
2016-05-06T23: 24: 25.694Z
Ganti yang T
di tengah dengan spasi, dan yang Z
tidak ada, untuk mendapatkan hasil yang diinginkan.
String output = instant.toString ().replace ( "T" , " " ).replace( "Z" , "" ; // Replace 'T', delete 'Z'. I recommend leaving the `Z` or any other such [offset-from-UTC][7] or [time zone][7] indicator to make the meaning clear, but your choice of course.
2016-05-06 23: 24: 25.694
Karena Anda tidak peduli dengan menyertakan offset atau zona waktu, buat tanggal-waktu "lokal" tidak terkait dengan lokalitas tertentu.
String output = LocalDateTime.now ( ).toString ().replace ( "T", " " );
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.
System.out.println( "Now: " + new DateTime ( DateTimeZone.UTC ) );
Saat dijalankan ...
Now: 2013-11-26T20:25:12.014Z
Anda juga dapat meminta fraksi milidetik per detik sebagai angka, jika diperlukan:
int millisOfSecond = myDateTime.getMillisOfSecond ();