我正在编写一个junit测试用例,我需要提供以下数据文件(请求):
data_file:
{
"birthDate" : "2017-12-08"
}
junit测试文件使用:
fasterxml.jackson.databind.ObjectMapper.readValue(data_file)
读取此请求数据文件并将日期转换为XMLGregorianCalendar。但是,转换后的值最后有一个“Z”,我认为这是默认时区:
2017-12-08T00:00:00.000Z
我无法更改包含用于读取Json值的代码的java类,因为我们不拥有代码。那么我应该在我的测试数据文件中给出什么日期字符串,以便“Z”不会出现在转换后的XMLGregorianCalendar值的末尾?
2017-12-08T00:00:00.000
非常感谢。
答案 0 :(得分:0)
我不知道你的JSON映射器如何获得它的结果。我试过了:
System.out.println(
DatatypeFactory.newInstance().newXMLGregorianCalendar("2017-12-08"));
打印
2017-12-08
没有与UTC的偏移,也没有一天的时间,只是我输入XMLGregorianCalendar
的字符串。
但是,如果您有一个XMLGregorianCalendar
,比如xgc
,则可以通过将其设置为undefined来删除偏移:
xgc.setTimezone(DatatypeConstants.FIELD_UNDEFINED);
现在toString
方法最终会生成一个不带Z
的字符串。