2024-01-01T00:00:00.000Z
我想在 ms(long) 中得到這個字串,我試過:
long res = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").parse(createdAt).getTime();
但它不起作用。
uj5u.com熱心網友回復:
時間
該java.util日期時間API及API格式,SimpleDateFormat都已經過時,而且容易出錯。建議完全停止使用它們并切換到現代 Date-Time API *。
使用java.time現代日期時間 API 的解決方案:
import java.time.Instant;
public class Main {
public static void main(String[] args) {
long res = Instant.parse("2024-01-01T00:00:00.000Z").toEpochMilli();
System.out.println(res);
}
}
輸出:
1704067200000
ONLINE DEMO
請注意,現代日期時間 API 基于ISO 8601,DateTimeFormatter只要日期時間字串符合 ISO 8601 標準,就不需要明確使用物件。
從Trail: Date Time 中了解有關現代日期時間 API 的更多資訊。
出于任何原因,如果您想使用SimpleDateFormat:
使用以下格式:
yyyy-MM-dd'T'HH:mm:ss.SSSXXX
檢查SimpleDateFormat檔案來了解之間的差異Z和X。
* 如果您正在為 Android 專案作業并且您的 Android API 級別仍然不符合 Java-8,請檢查通過 desugaring 可用的 Java 8 API。請注意,Android 8.0 Oreo 已提供對java.time.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/321366.html
