在編寫集成測試時,我期待着響應中的硬編碼日期。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,而只會在服務器中產生?感謝您的回覆 –