在java中将unix时间戳转换为日期
2022-08-31 14:26:27
如何在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);
该模式采取如果非常灵活,您可以签入javadocs的所有变体,您可以使用这些变体来根据您编写的特定模式生成不同的格式。http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.htmlSimpleDateFormat
Date
Date
getTime()
SimpleDateFormat
Java 8 引入了 Instant.ofEpochSecond
实用程序方法,用于从 Unix 时间戳创建 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的人有用。