簡體   English   中英

如何將此unix時間字符串轉換為java日期

[英]How to convert this unix time string to java date

我得到這個時間字符串“2015-07-16T03:58:24.932031Z”,我需要轉換為java時間戳,我使用下面的代碼,似乎轉換日期是錯誤的?

public static void main(String[] args) throws ParseException {
    DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'");
    Date date = format.parse("2015-07-16T03:58:24.932031Z");
    System.out.println("date: " + date);
    System.out.println("timestamp: " + date.getTime());
}

輸出:

date: Thu Jul 16 04:13:56 CST 2015
timestamp: 1436991236031

我的日期格式錯了嗎?

提前致謝!

你不想引用Z,這是一個時區指標。 而是使用X格式說明符 ,用於ISO-8601時區。

另外,您可能希望稍微預處理字符串,因為末尾的部分.932031不是毫秒(記住,一秒鍾內只有1000毫秒)。 看看那個值,它可能是微秒(百萬分之一秒)。 SimpleDateFormat沒有微秒的格式說明符。 您可以簡單地使用正則表達式或其他字符串操作來刪除它的最后三位數,將其轉換為毫秒。

這(假設你已完成修剪)有效: 實時復制

DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");
// Note --------------------------------------------------------^^^^
Date date = format.parse("2015-07-16T03:58:24.932Z");
// Note trimming --------------------------------^
System.out.println("date: " + date);
System.out.println("timestamp: " + date.getTime());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM