【发布时间】:2019-08-04 15:02:01
【问题描述】:
我正在尝试为 Jackson 对象映射器设置自定义日期格式(我正在使用 Jackson-databind-2.8.x),以便它可以解析传入的特定格式的 JSON 日期。没有秒部分的日期格式可以正常工作,但是当我添加秒时;它似乎失败了。
有效的格式
日期格式:yyyy-MM-dd HH:mmZ
正确解析的日期示例:2019-09-01 15:00+0000
为对象映射器设置日期格式:
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mmZ"));
无效的格式
日期格式:yyyy-MM-dd HH:mm:ssZ
示例日期:2019-09-01 15:00:00+0000
为对象映射器设置日期格式:
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ"));
例外:
Caused by: com.fasterxml.jackson.databind.exc.InvalidFormatException:
Can not deserialize value of type java.util.Date from String "2019-09-01 15:00:00+0000": not a valid representation (error: Failed to parse Date value '2019-09-01 15:00:00+0000': Unparseable date: "2019-09-01 15:00:00+0000")
我已经验证上面是一个正确的简单日期格式,因为下面的代码可以正常工作:
import java.text.SimpleDateFormat;
public class TestDF {
public static void main(String[] args) throws Exception {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ");
String date = "2019-09-01 15:00:00+0000";
System.out.println(format.parse(date));
}
}
【问题讨论】:
-
您使用哪个版本的
Jackson? -
现在添加了相同的。之前错过了添加。
-
我已经检查了这个版本
2.8.0并且它按预期工作。您能否也显示您的POJO和JSON有效载荷?
标签: java json simpledateformat objectmapper jackson-databind