本文介紹了Java SimpleDateFormat和19700101轉(zhuǎn)換問(wèn)題的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
我在Java中的日期轉(zhuǎn)換有一點(diǎn)小問(wèn)題。當(dāng)我將19700101賦給SimpleDateFormat,然后調(diào)用getTime時(shí),我得到-3600000。我寫測(cè)試:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
Date date = dateFormat.parse("19700101");
System.out.println(date.getTime());
System.out.println(dateFormat.format(new Date(0)));
System.out.println((new Date(0)).getTime());
結(jié)果應(yīng)為:
0
19700101
0
但我得到了
-3600000
19700101
0
我的問(wèn)題是為什么SimpleDateFormat返回-3600000(1969年11月20日)?在哪里可以找到有關(guān)格式和轉(zhuǎn)換錯(cuò)誤的信息?
推薦答案
您使用的是哪個(gè)時(shí)區(qū)?我猜您使用的是GMT+1。將時(shí)區(qū)設(shè)置為”GMT”,您應(yīng)該會(huì)得到預(yù)期的結(jié)果。
您使用的是默認(rèn)時(shí)區(qū),如CEST(GMT+1)。當(dāng)時(shí)間為1970年1月1日00:00:00.000時(shí),格林尼治標(biāo)準(zhǔn)時(shí)間為1969/12/31 23:00:00.000,距離1970年1月1日-1小時(shí)或-3600000毫秒。
這篇關(guān)于Java SimpleDateFormat和19700101轉(zhuǎn)換問(wèn)題的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,