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