如何在Java中將unix時間戳記的分鐘數轉換爲日期和時間。例如,時間戳1372339860
對應於Thu, 27 Jun 2013 13:31:00 GMT
。在java中將unix時間戳轉換爲日期
我想將1372339860
轉換爲2013-06-27 13:31:00 GMT
。
編輯:其實我希望它是根據美國時間格林威治標準時間-4,所以它將是2013-06-27 09:31:00
。
如何在Java中將unix時間戳記的分鐘數轉換爲日期和時間。例如,時間戳1372339860
對應於Thu, 27 Jun 2013 13:31:00 GMT
。在java中將unix時間戳轉換爲日期
我想將1372339860
轉換爲2013-06-27 13:31:00 GMT
。
編輯:其實我希望它是根據美國時間格林威治標準時間-4,所以它將是2013-06-27 09:31:00
。
您可以使用SimlpeDateFormat格式化你的日期是這樣的:
long unixSeconds = 1372339860;
// convert seconds to milliseconds
Date date = new Date(unixSeconds*1000L);
// the format of your date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
// give a timezone reference for formatting (see comment at the bottom)
sdf.setTimeZone(TimeZone.getTimeZone("GMT-4"));
String formattedDate = sdf.format(date);
System.out.println(formattedDate);
是SimpleDateFormat
需要,如果非常模式靈活的,您可以檢查javadoc中所有可用於根據給定的模式生成不同格式的變體Date
。 http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
Date
提供了getTime()
方法返回自EPOC毫秒,需要你給SimpleDateFormat
一個時區格式化日期正確acording你的時區,否則將使用的默認時區JVM(其中,如果以及配置將反正是正確的)你需要給它的時間戳乘以1000轉換成毫秒:
java.util.Date dateTime=new java.util.Date((long)timeStamp*1000);
請注意,問題是將曆元紀錄轉換爲日期,然後將它轉換爲帶有時區偏移的模式 –
爪哇8引入用於創建從一個Unix時間戳的Instant
的Instant.ofEpochSecond
實用方法,這然後可以轉換成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.對人有用
很多java.Time功能在[ThreeTen-Backport](http://www.threeten.org/threetenbp/)中被移植到Java 6和7,並進一步適用於[Android](https://en.wikipedia。 org/wiki/Android_(operating_system))[ThreeTenABP](https://github.com/JakeWharton/ThreeTenABP)(參見[*如何使用... *](http://stackoverflow.com/q/38922754/642706) ))。 –
您的UTC偏移示例('GMT-4')更適合於['OffsetDateTime'](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime .html)而不是'ZonedDateTime'。另外,我建議你將你的示例代碼分解成幾部分,分別介紹每一步和每個想法。 –
'日期時間任何=新的日期時間(yourunixtimestampaslong * 1000L,DateTimeZone.UTC);'如果你使用[JodaTime(HTTP:/ /joda-time.sourceforge.net/)。或'DateTime whatever = new DateTime(yourunixtimestampaslong * 1000L,DateTimeZone.forOffsetHours(-4));'爲你的第二個例子。 Javadoc [here](http://joda-time.sourceforge.net/apidocs/index.html) – fvu
SimpleDateFormat format = new SimpleDateFormat(「dd-MM-yyyy HH:mm:ss」); –