首页 > 解决方案 > java.lang.IllegalArgumentException:无效格式:“2018-08-24T��:��:��”在“��:��:��”处格式错误

问题描述

前端正在发送具有无效时间格式的日期,我得到了这个异常:

引起:java.lang.IllegalArgumentException:无效格式:“2018-08-24T��:��:��”在 org.joda.time.format.DateTimeParserBucket 的“��:��:��”处格式错误.doParseMillis(DateTimeParserBucket.java:187) 在 org.joda.time.format.DateTimeFormatter.parseMillis(DateTimeFormatter.java:826) 在 org.joda.time.convert.StringConverter.getInstantMillis(StringConverter.java:65) 在 org. joda.time.base.BaseDateTime.(BaseDateTime.java:173) 在 org.joda.time.DateTime.(DateTime.java:257)

基本上我想检查时间戳是否有任何格式错误的数据。如果是,我想将其设置为 0。例如日期时间是2018-08-24T��:��:��我想将其设置为2018-08-24T00:00:00

标签: javajodatime

解决方案


你已经成功了一半。

try {
 .. your code that parses the FED input
} catch ( IllegalArgumentException e) {
 .. do further checking

含义:当您收到来自源的错误输入时,该异常已经给了您一个异常。在这种情况下,您可以对传入的字符串进行简单的 substring() 或正则表达式检查。如果它是“4digits dash 2 digits dash 2 digits”......那么你得到了一个日期,并且可以手动创建一个相应的对象,并将时间值填写为全0。


推荐阅读