javaでUnixタイムスタンプから日付と時刻に分を変換するにはどうすればよいですか? たとえば、タイムスタンプ1372339860
は に対応しThu, 27 Jun 2013 13:31:00 GMT
ます。
に変換1372339860
したい2013-06-27 13:31:00 GMT
。
編集:実際には、米国のタイミングGMT-4に従って欲しいので、2013-06-27 09:31:00
.
javaでUnixタイムスタンプから日付と時刻に分を変換するにはどうすればよいですか? たとえば、タイムスタンプ1372339860
は に対応しThu, 27 Jun 2013 13:31:00 GMT
ます。
に変換1372339860
したい2013-06-27 13:31:00 GMT
。
編集:実際には、米国のタイミングGMT-4に従って欲しいので、2013-06-27 09:31:00
.
SimlpeDateFormat を使用して、次のように日付をフォーマットできます。
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);
SimpleDateFormat
非常に柔軟な場合のパターンは、特定のDate
. http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
Date
提供するため、タイムゾーンに従って日付を適切にフォーマットするためにタイムゾーンを指定する必要があります。そうしないと、JVM のデフォルトのタイムゾーンが使用されます (適切に構成されていれば、とにかく正しいでしょう)。 )getTime()
SimpleDateFormat
Java 8 では、Unix タイムスタンプからInstant.ofEpochSecond
を作成するためのユーティリティ メソッドが導入されていますInstant
。これを に変換してZonedDateTime
、最終的にフォーマットすることができます。
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'
これは、Java 8 を使用している人にとっては便利かもしれないと思いました。
タイムスタンプに 1000 を掛けてミリ秒に変換する必要があります。
java.util.Date dateTime=new java.util.Date((long)timeStamp*1000);