我的代码如下:
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
我想将第一行中打印的第一个日期更改为第二行中打印的第二个日期。我怎样才能做到这一点?提前致谢。
答案 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));