java中的时间转换

时间:2013-06-24 16:55:21

标签: java datetime time datetime-conversion

我的代码如下:

Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2013-06-03 00:00:00");
        System.out.println(date);
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Calendar cal = Calendar.getInstance();
        System.out.println("Current Date Time : " + dateFormat.format(cal.getTime()));

输出: 2013年3月3日星期一00:00:00 当前日期时间:2013-06-24 12:52:04

我想将第一行中打印的第一个日期更改为第二行中打印的第二个日期。我怎样才能做到这一点?提前致谢。

5 个答案:

答案 0 :(得分:5)

你不能影响Date#toString方法的作用(除非你愿意继承Date,否则不建议)。简而言之,不要依赖Date#toString - 这就是SimpleDateFormat的用途。

答案 1 :(得分:2)

好吧,你可以看到toString对象的Date方法!您将看到toString输出Date对象,如下面的格式:

EEE MMM dd HH:mm:ss zzz yyyy

这就是为什么DateFormat加入聚会来格式化Date对象,以满足我们格式化它的要求!

答案 2 :(得分:1)

我认为你自己很困惑,因为你使用SimpleDateFormat#parse指定一个面具来创建一个日期,并且在打印之后它没有被“保留”,对吗?

重点是:无论你如何创建一个Date对象,它在打印时都会使用它的默认掩码 - 就像Mon Jun 03 00:00:00 EDT 2013一样。

如果您想更改其打印方式,可以使用SimpleDateFormat,就像您在帖子中所做的那样:

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = dateFormat.parse("2013-06-03 00:00:00");
dateFormat.format(date);

为了清楚起见:SimpleDateFormat不会以任何方式更改date对象。它的目的只是格式化和解析日期对象。

答案 3 :(得分:0)

使用相同的DateFormat打印第一个Date对象。

System.out.println(dateFormat.format(date));

如何println()打印Date对象取决于Date.toString()的实施方式。除非您扩展并覆盖Date类,否则您无法更改格式,这显然不是正确的方法。

    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date date = dateFormat.parse("2013-06-03 00:00:00");

    System.out.println(date); // formats as: EEE MMM dd HH:mm:ss zzz yyyy

    System.out.println(dateFormat.format(date));
    System.out.println("Current Date Time: " +
                       dateFormat.format(Calendar.getInstance().getTime()));

答案 4 :(得分:0)

嗯,把两者结合起来,没有?

System.out.println(dateFormat.format(date));