Java Jackson ObjectMapper不接受所有日期格式
我试图将自定义日期格式设置为Jackson对象映射器(我使用的是Jackson-databind-2.8.x),以便它能够以特定格式解析传入的JSON日期。没有秒部分的日期格式可以很好地工作,但当我向它添加秒时;它似乎失败了 有效的格式 日期格式:Java Jackson ObjectMapper不接受所有日期格式,java,json,simpledateformat,objectmapper,jackson-databind,Java,Json,Simpledateformat,Objectmapper,Jackson Databind,我试图将自定义日期格式设置为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 H
yyyy-MM-dd HH:mmZ
解析精细的日期示例:2019-09-01 15:00+0000
将日期格式设置为对象映射器:
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mmZ"));
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ"));
不起作用的格式
日期格式:yyyy-MM-dd HH:MM:ssZ
示例日期:2019-09-01 15:00:00+0000
将日期格式设置为对象映射器:
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mmZ"));
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));
}
}
您应该更仔细地查看您的代码:
objectMapper.setDateFormat(新的SimpleDateFormat(“yyyy-MM-dd-HH:mmZ”)代码>
vs
SimpleDateFormat格式=新的SimpleDateFormat(“yyyy-MM-dd HH:MM:ssZ”)代码>
这是两种不同的格式
应该是:
objectMapper.setDateFormat(新的SimpleDateFormat(“yyyy-MM-dd-HH:MM:ssZ”)代码>
请注意添加的:ss
这确实是给定字符串的格式
编辑
此测试有效(使用Jackson 2.8.0)
刚刚更新了我的问题,使之更清楚。这里有两个部分1)我展示了哪种格式有效&哪种格式无效2)一个简单的日期解析代码,它使用了不起作用的格式。您使用的是哪个版本的Jackson
?现在添加了相同的版本。之前没有添加这个。我已经检查了版本2.8.0
,它可以正常工作。您能否同时显示您的POJO
和JSON
有效负载?