Java中Date()类 日期转字符串、字符串转日期的问题(已解决)

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 ---------------------------------

 

posted @ 2019-03-16 21:09  Java魑魅魍魉  阅读(4522)  评论(2编辑  收藏  举报