在编写集成测试时,我期待着响应中的硬编码日期。Java日期时间差异
基本上我硬编码expected date value '2020-11-10T00:00:00.000-05:00'
跑new GregorianCalendar(2020, 10, 10).getTime()
当我把和断言和本地运行它通过,但是当同样的代码被推到竹构建服务器时,它产生的actualValue是'2020-11-10T00:00:00.000Z'
所以我的测试失败。
为什么相同的calendar.getTime生成两个不同的时间,是因为服务器机器配置为GMT吗?
我可以做些什么让他们在同一时间或任何其他解决方法?
注意:使这串或没有时间与日期是不是一种选择这里,因为我使用Spring MockWebServiceServer,凡在我必须硬编码的responseXML并指定日期,在枚举这样的事情。
REQUESTAUTOMATESETTLEMENTWORKCASE("<aut:AutomateSettlementWorkcaseRequest xmlns:aut=\"http://www.abcd.com/abcd/workflow/services/workcase/model/AutomateSettlementWorkcase_1_0_0\">" +
" <aut:customerAccountId>5049903033584324</aut:customerAccountId>\n" +
" <aut:settlementDate>2020-11-10T00:00:00.000-05:00</aut:settlementDate>\n" +
" </aut:AutomateSettlementWorkcaseRequest>"),
我很乐意使用乔达时间,但它不适合我在我的工作场所。获得11月也不是我的担忧(那是我期待的日期)。我只是想知道**为什么当calender.getTime()运行在构建服务器上时,它会产生尾随Z **,但在本地机器上运行-05:00。我也尝试将时区设置为UTC,但它仍然在服务器中跟随Z. 'GregorianCalendar cal = new GregorianCalendar(2020,10,10); TimeZone tz = TimeZone.getTimeZone(“UTC”); cal.setTimeZone(tz);' –
@Himalay:尾部Z表示UTC。您应该计算出您想要使用的时区,并明确设置它。将编辑关于11月份的部分 - 我误解了你的测试用例。 –
正如你在上面我的评论中看到的那样,我明确地将TimeZone设置为UTC,但是它不会在我的本地机器中产生尾随的Z,而只会在服务器中产生?感谢您的回复 –