今天在寫東西的時候忽然發現一個問題,就是先new 一個Date()而後將生成的值轉爲字符串,api
而後再將轉換後的字符串再次用new Date()轉爲日期,可是轉完以後發現兩次生成的日期之間有差距?有大佬知道是什麼緣由嗎?spa
知道的大佬麻煩說一下,謝謝了!code
我把代碼貼在下面:orm
public void test2() { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("G yyyy年 MM月dd日 HH時mm分ss秒SS毫秒 E 一年中的第D天 MM月中的第F個E 一年中的第w個星期 一月中的第W個星期 a z時區"); //獲取日期
Date date = new Date(); //控制檯打印日期
System.out.println("date = " + simpleDateFormat.format(date)); //將上面獲取的日期轉爲字符串以後再轉成日期
Date date1 = new Date(date + ""); //控制檯打印日期
System.out.println("date1 = " + simpleDateFormat.format(date1)); /** * 打印的結果 * date = 公元 2019年 03月16日 21時06分13秒241毫秒 星期六 一年中的第75天 03月中的第3個星期六 一年中的第11個星期 一月中的第3個星期 下午 CST時區 * date1 = 公元 2019年 03月17日 11時06分13秒00毫秒 星期日 一年中的第76天 03月中的第3個星期日 一年中的第12個星期 一月中的第4個星期 上午 CST時區 */ }
-------------------------------------------------------blog
下面是詳解:字符串
看了大佬的評論。 本身也去看了看api,其實就是時區問題。form
根據參數肯定日期和時間。 該參數被解釋爲年,月,該月的一天,一天的時間,在一小時內分和秒中的分鐘,正好做爲Date構造與六個參數,class
除了參數相對於UTC解釋而不是當地時區。test
返回的時間表示爲從時代(1970年1月1日00:00:00 GMT)開始的距離(以毫秒爲單位)。date
--------------------------------- end ---------------------------------