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