0

我正在编写一个 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

非常感谢。

4

1 回答 1

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最后的字符串。

于 2017-12-08T17:19:18.617 回答