Java中Date()類 日期轉字符串、字符串轉日期的問題
今天在寫東西的時候突然發現一個問題,就是先new 一個Date()然后將生成的值轉為字符串,
然后再將轉換后的字符串再次用new Date()轉為日期,但是轉完之后發現兩次生成的日期之間有差距?有大佬知道是什么原因嗎?
知道的大佬麻煩說一下,謝謝了!
我把代碼貼在下面:
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時區 */ }
-------------------------------------------------------
下面是詳解:
看了大佬的評論。 自己也去看了看api,其實就是時區問題。
根據參數確定日期和時間。 該參數被解釋為年,月,該月的一天,一天的時間,在一小時內分和秒中的分鍾,正好作為Date構造與六個參數,
除了參數相對於UTC解釋而不是當地時區。
返回的時間表示為從時代(1970年1月1日00:00:00 GMT)開始的距離(以毫秒為單位)。
--------------------------------- end ---------------------------------
