【发布时间】:2020-04-15 04:17:21
【问题描述】:
我在尝试格式化日期时遇到此错误时间。 这是代码sn-p。
private LocalDate expirationDate;
public static String convertIntlToStandard(String dateTpChange) {
if(StringUtils.isNotBlank(dateTpChange)) {
DateTimeFormatter oldformatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate formatDateTime = LocalDate.parse(dateTpChange, oldformatter);
DateTimeFormatter newformatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
return formatDateTime.format(newformatter);
} else {
return dateTpChange;
}
}
boPrescriptionResponse.setExpirationDate(LocalDate.parse(DateUtils.convertIntlToStandard(boPrescription.getExpirationDate().toString())));
java.time.format.DateTimeParseException:无法在索引 0 处解析文本“06/05/2019”
【问题讨论】:
-
这是意料之中的。当您尝试使用
yyyy-MM-dd的格式化程序解析具有模式MM/dd/yyyy的字符串时,格式化程序将无法转换模式并引发异常。所以你需要先检查模式。具体来说:06/0的年份是无法解析的。 -
为什么您期望
"06/05/2019"的dateTpChange字符串值在使用带有"yyyy-MM-dd"模式的格式化程序时会正确解析? -
您的方法的命名不明确,因为
yyyy-MM-dd是标准 (ISO-8601)。
标签: java