java.lang.IllegalArgumentException:无效格式:“2018-08-24T��:��:��”格式错误,显示为“��:��:��”

时间:2018-08-24 11:51:43

标签: java jodatime

前端正在使用无效的时间格式发送日期,但出现此异常:

  

原因:java.lang.IllegalArgumentException:无效的格式:   “ 2018-08-24TT ::::”格式错误,格式为“   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

1 个答案:

答案 0 :(得分:2)

您已经中途了。

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

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