前端正在使用无效的时间格式发送日期,但出现此异常:
原因: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
答案 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。例如