我想將不同格式的時間戳轉換為一種格式 我想將以下時間戳轉換為單一格式
Time Stamp 1 : 2022-08-17T18:28:07.288496 05:30
Time Stamp 2 : 2022-10-27T13:17:47.987736542Z
至
yyyy-MM-dd'T'HH:mm:ss格式
我嘗試過使用DateFormatterJava,但它給出了 ParseException。也使用過SimpleDateFormatter,但遇到了相同的例外。請建議相同的包裝或方法。
編輯:我用于轉換的代碼
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
LocalDateTime localDateTime = LocalDateTime.parse(timestamp, formatter);
System.out.println(localDateTime);
uj5u.com熱心網友回復:
java.time與 等相比java.util.Date,使用此處是一個好主意Calendar,但您必須使用與String表示日期時間或時間戳的 a 中的資訊相匹配的特定類。
在您的情況下,String包含以下資訊:
- 年
- 一年中的一個月
- 一個月的一天
- 一天中的小時
- 分鐘
- 分秒
- 秒的分數
- 從 UTC 偏移
特別是,它是最后一個(從 UTC 偏移),它使您的嘗試失敗,因為您 (1)DateTimeFormatter沒有LocalDateTime按照保存有關區域或偏移量的資訊。
具有String偏移量的 s 可以存盤在/決議為OffsetDateTimes,如果它們是 ISO 格式(如您的示例),您甚至不需要應用自定義DateTimeFormatter. 您可以簡單地呼叫OffsetDateTime.parse(String).
然后,您可以通過創建自定義來定義所需的輸出格式DateTimeFormatter并將其應用到OffsetDateTime.format(DateTimeFormatter).
這是一個例子:
public static void main(String[] args) {
// example Strings (your ones)
String timestampOne = "2022-08-17T18:28:07.288496 05:30";
String timestampTwo = "2022-10-27T13:17:47.987736542Z";
// directly parse them to get instances of OffsetDateTime
OffsetDateTime odtOne = OffsetDateTime.parse(timestampOne);
OffsetDateTime odtTwo = OffsetDateTime.parse(timestampTwo);
// prepare a formatter for your desired output
DateTimeFormatter dtfOut = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss");
// and print the values of the OffsetDateTimes formatted by that DateTimeFormatter
System.out.println(odtOne.format(dtfOut));
System.out.println(odtTwo.format(dtfOut));
}
輸出:
2022-08-17T18:28:07
2022-10-27T13:17:47
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/522556.html
上一篇:檢查excel中日期范圍之間的日期是否在串列中有多個日期范圍并輸出相應的范圍標簽
下一篇:在資料框中將日期拆分為2列
