我有一個如下值Mon Jun 18 11:32:05 BST 2012,我想將其轉換為18 June 2012
如何轉換這個?
以下是我嘗試過的..
public String getRequiredDate(String sendInputDate) {
Optional<OffsetDateTime> date = dateParsing(sendInputDate);
if(date) {
String REQUIRED_PATTERN="dd MMMM yyyy";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(REQUIRED_PATTERN);
return date.get().format(formatter);
}
}
import java.time.OffsetDateTime;因此回傳相同
public static Optional<OffsetDateTime> dateParsing(String date) {
String PATTERN = "EEE MMM dd HH:mm:ss zzz yyyy";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(PATTERN);
return Optional.of(OffsetDateTime.parse(date, formatter));
}
但它總是讓我回來" " (blank)
uj5u.com熱心網友回復:
它不會“回傳空白”。您可能在某處進行了一些例外處理,這些例外處理正在吞噬實際問題并將其替換為空白字串。
實際問題是這個例外:
java.time.format.DateTimeParseException: Text 'Mon Jun 18 11:32:05 BST 2012' could not be parsed:
Unable to obtain OffsetDateTime from TemporalAccessor
即您的字串不包含偏移量,但您正試圖將其決議為需要偏移量的內容。它有一個區域。
例如,您可以將其決議為 ZonedDateTime 然后進行轉換。
OffsetDateTime parsed = ZonedDateTime.parse(date, formatter).toOffsetDateTime();
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/503982.html
上一篇:根據實際月份和年份創建串列
下一篇:在JS中將日期更改為24小時格式
