Bagaimana saya bisa mengkonversi menit dari unix time stamp untuk tanggal dan waktu dalam java. Sebagai contoh, time stamp 1372339860
sesuai dengan Thu, 27 Jun 2013 13:31:00 GMT
.
Aku ingin mengkonversi 1372339860
untuk 2013-06-27 13:31:00 GMT
.
Edit : Sebenarnya aku ingin menjadi menurut KAMI waktu GMT-4, sehingga akan 2013-06-27 09:31:00
.
Anda dapat menggunakan SimlpeDateFormat untuk format tanggal seperti ini:
long unixSeconds = 1372339860;
// convert seconds to milliseconds
Date date = new java.util.Date(unixSeconds*1000L);
// the format of your date
SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
// give a timezone reference for formatting (see comment at the bottom)
sdf.setTimeZone(java.util.TimeZone.getTimeZone("GMT-4"));
String formattedDate = sdf.format(date);
System.out.println(formattedDate);
Pola yang SimpleDateFormat
mengambil jika sangat fleksibel, anda bisa cek di javadocs semua variasi yang dapat anda gunakan untuk menghasilkan berbagai format berdasarkan pola anda menulis tertentu yang diberikan Upload
. http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
Tanggal
memberikan getTime()
metode yang mengembalikan milidetik sejak EPOC, hal ini diperlukan bahwa anda memberikan SimpleDateFormat
zona waktu untuk format tanggal yang benar menurut zona waktu anda, selain itu akan menggunakan default timezone dari JVM (yang jika dikonfigurasi dengan baik akan menjadi lagian kan)Jawa 8 memperkenalkan Instan.ofEpochSecond
utilitas metode untuk membuat sebuah Instan
dari Unix timestamp, ini kemudian dapat diubah menjadi a ZonedDateTime
dan akhirnya diformat, misalnya:
final DateTimeFormatter formatter =
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
final long unixTime = 1372339860;
final String formattedDtm = Instant.ofEpochSecond(unixTime)
.atZone(ZoneId.of("GMT-4"))
.format(formatter);
System.out.println(formattedDtm); // => '2013-06-27 09:31:00'
Saya pikir ini mungkin akan berguna bagi orang-orang yang menggunakan Java 8.