時區格式不正確
String fromDate = "2022-10-14T10:00:00 0300";
final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
Date date = dateFormat.parse(fromDate);
System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(date));
運行時我得到我的本地區域
2022-10-14T12:30:00 0430
uj5u.com熱心網友回復:
JavaDate沒有時區和偏移量的概念,它實際上是自紀元以來的一個瞬間,當您toString()使用它時,它會默默地使用默認時區進行格式化。您已經有了關于遺留 API 的答案,所以我將發布一個關于java.time的答案,這是現代日期時間 API,自 java 8 起可用。
使用DateTimeFormatter決議和格式化日期/時間。輸入字串僅包含偏移量,沒有時區,為了保留此資訊,您需要將其決議為OffsetDateTime。
String fromDate = "2022-10-14T10:00:00 0300";
DateTimeFormatter parseFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ");
OffsetDateTime dateTime = OffsetDateTime.parse(fromDate, parseFormatter);
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
System.out.println(outputFormatter.format(dateTime));
//prints - 2022-10-14T10:00:00.000 0300
uj5u.com熱心網友回復:
` String fromDate = "2022-10-14T10:00:00 0300";
final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
Date date = dateFormat.parse(fromDate);
dateFormat.setTimeZone(TimeZone.getTimeZone("EAT"));
System.out.println(dateFormat.format(date));'
uj5u.com熱心網友回復:
LocalDateTime dt = LocalDateTime.of(2022,Month.OCTOBER,14,9,0);
System.out.println(dt.format(DateTimeFormatter.ISO_DATE_TIME));
ISO 是日期的標準。請使用新類 (java.time.format.DateTimeFormatter; java.time) 或者是否真的需要使用 String 變數作為輸入?
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/515682.html
標籤:爪哇日期时区
上一篇:無法在customTableViewCell中設定imageView的影像
下一篇:無法更改日期格式-R
