java - 如何在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 - 如何在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
非常灵活,您可以在 javadocs 中检查所有可用于根据给定特定Date
. http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
Date
提供了一个getTime()
返回自 EPOC 以来的毫秒数的方法,所以需要您给SimpleDateFormat
一个时区以根据您的时区正确格式化日期,否则它将使用 JVM 的默认时区(如果配置良好,无论如何都是正确的)Java 8 引入了从 Unix 时间戳Instant.ofEpochSecond
创建 an 的实用方法,Instant
然后可以将其转换为 aZonedDateTime
并最终格式化,例如:
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);