java中的时间转换
我有一个如下代码:java中的时间转换,java,datetime,time,datetime-conversion,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
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年6月3日星期一美国东部夏令时00:00:00
当前日期时间:2013-06-24 12:52:04
我想将第一行中打印的第一个日期更改为第二行中打印的第二个日期。我该怎么做?提前谢谢 您不能影响
Date#toString
方法的功能(除非您愿意将Date
子类化,这是不建议的)。简单地说,不要依赖Date#toString
——这就是SimpleDateFormat
的作用。使用相同的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()));
把两者结合起来,不是吗
System.out.println(dateFormat.format(date));
我觉得你很迷惑自己,因为你正在使用
SimpleDateFormat#parse
指定一个掩码来创建一个日期,并且在打印后它不会被“保留”,对吗
要点是:无论您如何创建一个日期
对象,当您打印它时,它将始终使用它的默认掩码-这类似于2013年6月3日周一00:00:00美国东部夏令时
如果要更改打印方式,可以使用SimpleDataFormat
,就像您在文章中所做的那样:
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = dateFormat.parse("2013-06-03 00:00:00");
dateFormat.format(date);
需要明确的是:SimpleDataFormat不会以任何方式更改
date
对象。它的目的只是格式化和解析日期对象。您可以看到date
对象的toString
方法!您将看到toString
输出Date
对象,格式如下:
EEE MMM dd HH:mm:ss zzz yyyy
这就是为什么
DateFormat
加入派对来格式化Date
对象,以满足我们的需求,按照我们的意愿格式化它 或者使用JodaTime,您可以使用类似于DateTime.now().toString(“yyyy-MM-dd”)
的方法进行格式化。