我有这段代码可以将String双向解析为LocalDateTime:
public class ConvertLocalDateToString {
private static final DateTimeFormatter CUSTOM_LOCAL_DATE;
static {
CUSTOM_LOCAL_DATE = new DateTimeFormatterBuilder()
.appendValue(YEAR, 4, 10, SignStyle.EXCEEDS_PAD)
.appendLiteral('-')
.appendValue(MONTH_OF_YEAR, 2)
.appendLiteral('-')
.appendValue(DAY_OF_MONTH, 2)
.appendLiteral(' ')
.appendValue(HOUR_OF_DAY, 2)
.appendLiteral(':')
.appendValue(MINUTE_OF_HOUR, 2)
.optionalStart()
.appendLiteral(':')
.appendValue(SECOND_OF_MINUTE, 2)
.toFormatter();
}
public static void main(String[] args) {
String str = "2020-02-18 15:04:30";
LocalDateTime dateTime = LocalDateTime.parse(str, CUSTOM_LOCAL_DATE); //2020-02-18T15:04:30
LocalDateTime addedDateTime = LocalDateTime.parse(dateTime.plusHours(10).format(CUSTOM_LOCAL_DATE.withZone(ZoneOffset.UTC)));
System.out.println(addedDateTime);
System.out.println(dateTime); //2020-02-18T15:04:30
}
我的假设是'T'字母由ISO-8601格式自动生成。这导致:
DateTimeParseException:无法在索引10处解析文本'2020-02-18 15:04:30'>>
我如何摆脱它?
我有这段代码,可以将String双向解析为LocalDateTime:公共类ConvertLocalDateToString {私有静态最终DateTimeFormatter CUSTOM_LOCAL_DATE;静态{...
[System.out.println(dateTime)
与System.out.println(String.valueOf(dateTime))
相同。