我正在改装一些旧的SimpleDateFormat
使用新 Java 8 的代码DateTimeFormatter
. SimpleDateFormat
,因此旧代码接受日期后面包含内容的字符串,例如“20130311nonsense”。这DateTimeFormat
我创建了一个DateTimeParseException
对于这些字符串,这可能是正确的做法,但我想保持兼容性。我可以修改我的DateTimeFormat
接受这些字符串?
我目前正在这样创建它:
DateTimeFormatter.ofPattern("yyyyMMdd")
Use the parse()方法需要一个ParsePosition
,因为当它不读取整个文本时不会失败:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
TemporalAccessor parse = formatter.parse("20140314 some extra text", new ParsePosition(0));
System.out.println(LocalDate.from(parse));
The ParsePosition
您传递的实例也将随着解析停止的点进行更新,因此如果您需要对剩余文本执行某些操作,那么在调用之前将其分配给变量将很有用parse
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)