在java中格式化日期

时间:2014-01-22 00:08:49

标签: java

我有两个Date对象,我试图将其格式化为MM/DD/YYYY格式到"yyyy-mm-dd HH:mm:ss"格式。

我目前使用的方法是首先使用SimpleDateFormat格式化这些日期,这将返回两个Strings,然后我必须将此字符串转换回Date以获取格式化的最终{{1}对象。

所以我想知道是否有更简单的方法来更改Date对象格式而不进行多个步骤?

由于

1 个答案:

答案 0 :(得分:1)

格式无关紧要。 Date只表示自Unix纪元以来的毫秒数。

请记住,Date没有格式概念,也不关心。

您应该使用您需要的任何格式化器来格式化Date对象...

例如......

Date date = new Date();
System.out.println(date);
System.out.println(DateFormat.getDateTimeInstance().format(date));
System.out.println(new SimpleDateFormat("dd/MM/yyyy").format(date));
System.out.println(new SimpleDateFormat("yyyy MMMM EE").format(date));
System.out.println(new SimpleDateFormat("EEEE MMMM yyyy").format(date));
System.out.println(date);

...输出

Wed Jan 22 11:55:18 EST 2014
22/01/2014 11:55:18 AM
22/01/2014
2014 January Wed
Wednesday January 2014
Wed Jan 22 11:55:18 EST 2014

注意第一个和最后一个值如何不变。 Date没有格式的内部概念,这是格式化程序的责任。

例如,如果我使用String22/01/2014并使用Date将其解析回SimpleDateFormat

Date date = new SimpleDateFormat("dd/MM/yyyy").parse("22/01/2014");

然后输出date值...

System.out.println(date);

它会输出类似......

的内容
Wed Jan 22 00:00:00 EST 2014

格式丢失了。它需要使用适当的格式化程序来更改显示的内容