本文介紹了為什么字符串是最新的,而返回到字符串會(huì)產(chǎn)生兩個(gè)不同的字符串?的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我的輸入字符串是:
"2016-06-13T14:20:09.866Z"
我的輸出字符串是:
"2016-06-13T10:20:09.866-04"
它們?yōu)槭裁床煌绾问蛊湟耘c輸入相同的格式輸出?
我將字符串轉(zhuǎn)換為日期:
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX", Locale.ENGLISH);
dateFormat.parse((String) date));
在單元測(cè)試中,我將解析后的日期轉(zhuǎn)換回字符串:
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX", Locale.ENGLISH);
dateFormat.format(date);
推薦答案
這兩個(gè)日期相同,只是格式不同(一個(gè)是UTC下午2點(diǎn),另一個(gè)是上午10點(diǎn),偏移量也是-4小時(shí)=UTC下午2點(diǎn))。
所以我想您想要的是第二個(gè)字符串也在UTC時(shí)區(qū)。在這種情況下,您只需設(shè)置第二個(gè)DateFormat的時(shí)區(qū):
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX", Locale.ENGLISH);
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
這篇關(guān)于為什么字符串是最新的,而返回到字符串會(huì)產(chǎn)生兩個(gè)不同的字符串?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,