日期:爪哇。时间总体安排DateTimeParseException:无法在索引2处分析文本“103545”
我试图分析两个不同的日期并计算它们之间的差异,但出现了下一个错误:
java.time.format.DateTimeParseException: Text '103545' could not be parsed at index 2
以下是代码:
String thisDate= mySession.getVariableField(myVariable).toString().trim();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("ddMMyyyy");
LocalDate theDate= LocalDate.parse(thisDate, formatter);
# 1 楼答案
这和预期的差不多
您的格式模式字符串
ddMMyyyy
指定了两位数的月份天数、两位数的月份和(至少)四位数的年份,总共(至少)八(8)位数。因此,当你给它一个只有6位数字的字符串时,解析必然会失败如果您的用户或其他系统被要求以
ddMMyyyy
格式向您提供日期,而他们向您提供103545
,那么他们就是在犯错误。你的验证发现了错误,这是件好事。你可能想给他们一个机会再试一次,给你一个字符串,比如10112021
(2021年11月10日)如果(只是猜测)
103545
是指一天中的某个时间,10:35:45,那么需要使用LocalTime
类,还需要更改格式模式字符串,以指定小时、分钟和秒,而不是年、月和日期此代码段的输出为:
# 2 楼答案
这里的问题是,日期分析器必须以指定的格式接收日期(在本例中为“ddMMyyyy”)
例如,为了让解析器返回有效日期,您需要输入以下内容:
我想你想要的是把一个以毫秒为单位的日期转换成一个特定格式的日期。这就是你能做的: