Coba saja kode Contoh ini: -
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Test {
/**
* Main Method
*/
public static void main(String[] args) {
System.out.println(getDate(82233213123L, "dd/MM/yyyy hh:mm:ss.SSS"));
}
/**
* Return date in specified format.
* @param milliSeconds Date in milliseconds
* @param dateFormat Date format
* @return String representing date in specified format
*/
public static String getDate(long milliSeconds, String dateFormat)
{
// Create a DateFormatter object for displaying date in specified format.
SimpleDateFormat formatter = new SimpleDateFormat(dateFormat);
// Create a calendar object that will convert the date and time value in milliseconds to date.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(milliSeconds);
return formatter.format(calendar.getTime());
}
}
Saya harap ini membantu ...
java.util.Date
,java.util.Calendar
, danjava.text.SimpleDateFormat
sekarang warisan, digantikan oleh java.time kelas. Sebagian besar fungsionalitas java.time di -back-port ke Java 6 & Java 7 dalam proyek ThreeTen-Backport . Diadaptasi lebih lanjut untuk Android sebelumnya dalam proyek ThreeTenABP . Lihat Cara menggunakan ThreeTenABP… .Ubah nilai milidetik menjadi
Date
instance dan teruskan ke formatter yang dipilih.sumber
Panggil fungsi ini
sumber
sumber
coba kode ini mungkin bisa membantu, modifikasi sesuai kebutuhan anda
sumber
saya akhirnya menemukan kode normal yang bekerja untuk saya
sumber
tl; dr
java.time
Pendekatan modern menggunakan java.time kelas yang menggantikan kelas tanggal-waktu lama yang merepotkan yang digunakan oleh semua Answers lainnya.
Dengan asumsi Anda memiliki
long
sejumlah milidetik sejak referensi periode momen pertama tahun 1970 di UTC, 1970-01-01T00: 00: 00Z…Untuk mendapatkan tanggal membutuhkan zona waktu. Untuk saat tertentu, tanggal bervariasi di seluruh dunia menurut zona.
Ekstrak nilai khusus tanggal.
Hasilkan String yang mewakili nilai itu menggunakan format ISO 8601 standar.
Hasilkan String dalam format kustom.
Tip: Pertimbangkan untuk membiarkan java.time secara otomatis melokalkan untuk Anda daripada membuat kode keras pola pemformatan. Gunakan
DateTimeFormatter.ofLocalized…
metode.Tentang java.time
The java.time kerangka dibangun ke Jawa 8 dan kemudian. Kelas-kelas ini menggantikan tua merepotkan warisan kelas tanggal-waktu seperti
java.util.Date
,Calendar
, &SimpleDateFormat
.Proyek Joda-Time , sekarang dalam mode pemeliharaan , menyarankan migrasi ke kelas java.time .
Untuk mempelajari lebih lanjut, lihat Tutorial Oracle . Dan cari Stack Overflow untuk banyak contoh dan penjelasan. Spesifikasinya adalah JSR 310 .
Anda dapat bertukar objek java.time langsung dengan database Anda. Gunakan driver JDBC yang sesuai dengan JDBC 4.2 atau yang lebih baru. Tidak perlu string, tidak perlu
java.sql.*
kelas.Dimana mendapatkan kelas java.time?
Proyek ThreeTen-Extra memperluas java.time dengan kelas tambahan. Proyek ini adalah tempat pembuktian untuk kemungkinan penambahan java.time di masa mendatang. Anda mungkin menemukan beberapa kelas berguna di sini seperti
Interval
,YearWeek
,YearQuarter
, dan lebih .sumber
Singkat dan efektif:
sumber
sumber
sumber
Saya telah mencari cara yang efisien untuk melakukan ini selama beberapa waktu dan yang terbaik yang saya temukan adalah:
Keuntungan:
Kekurangan:
Anda dapat menyimpan objek java.text.DateFormat ke cache, tetapi itu bukan threadsafe. Ini tidak masalah jika Anda menggunakannya di UI thread.
sumber
sumber
Ini adalah cara termudah menggunakan Kotlin
sumber
SimpleDateFormat
. Setidaknya bukan sebagai opsi pertama. Dan bukan tanpa syarat apapun. Hari ini kita memiliki jauh lebih baik dalamjava.time
, API tanggal dan waktu Java modern, danDateTimeFormatter
. Ya, Anda dapat menggunakannya di Android. Untuk Android yang lebih lama gunakan desugaring atau lihat Bagaimana menggunakan ThreeTenABP di Proyek Android .hh
? Silakan periksa perbedaan antara huruf besar dan kecil di sini.return Instant.ofEpochMilli(millis).atZone(ZoneId.systemDefault()).format(DateTimeFormatter.ofPattern(DATE_FORMAT, Locale.US))
. Ya, lebih lama karena memberi lebih banyak informasi tentang apa yang sedang terjadi, jadi ini keuntungan.Gunakan SimpleDateFormat untuk Android N dan yang lebih baru. Gunakan kalender untuk versi sebelumnya misalnya:
Keluaran:
fileName before: 2019-04-12-07: 14: 47 // gunakan SimpleDateFormat
fileName after: 2019-4-12-7: 13: 12 // gunakan Calender
sumber
Anda dapat membuat java.util.Date dalam milidetik. Dan kemudian mengubahnya menjadi string dengan java.text.DateFormat.
sumber