用java格式化日期

用java格式化日期,java,Java,我有两个日期对象,我正试图将其从MM/DD/YYYY格式格式化为“YYYY-MM-DD HH:MM:ss”格式 我目前使用的方法是首先使用SimpleDateFormat格式化这些日期,它将返回两个字符串,然后我必须将该字符串转换回日期,以获得格式化的最终日期对象 因此,我想知道是否有一种更简单的方法来更改日期对象格式,而无需执行许多步骤 谢谢格式不相关Date仅表示自Unix纪元以来的毫秒数 记住,Date没有格式的概念,它不在乎 您只需使用所需的格式化程序格式化Date对象即可 例如 Dat

我有两个日期对象,我正试图将其从
MM/DD/YYYY
格式格式化为
“YYYY-MM-DD HH:MM:ss”
格式

我目前使用的方法是首先使用
SimpleDateFormat
格式化这些日期,它将返回两个
字符串
,然后我必须将该字符串转换回日期,以获得格式化的最终
日期
对象

因此,我想知道是否有一种更简单的方法来更改日期对象格式,而无需执行许多步骤


谢谢

格式不相关
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
请注意第一个值和最后一个值是如何保持不变的<代码>日期没有格式的内部概念,这是格式化程序的责任

例如,如果我获取
字符串
2014年1月22日
并使用
SimpleDateFormat

Date date = new SimpleDateFormat("dd/MM/yyyy").parse("22/01/2014");
然后输出<代码>日期<代码>值

System.out.println(date);
它将输出类似于

Wed Jan 22 00:00:00 EST 2014

格式已丢失。如果我在这里理解正确,则需要使用适当的格式化程序来更改显示内容

,您的意思是,如果我有例如Date1对象,无论我如何格式化其日期,它都将保持与以前相同的原始格式。因此,要使用格式化日期,我必须从SimpleDateFormat或DateFormatter获取字符串输出…正确吗?获取
字符串
,将其解析为
日期
(使用适当的格式器输入
字符串
)。一旦有了
日期
,就可以将其传递给所需的任何格式化程序,并且它不会以任何方式更改
日期
对象。请看我在问题末尾链接的示例。您提供的示例假设我最初有一个带有日期的字符串,但事实并非如此。我最初有一个日期对象,其中包含我需要格式化的日期…有意义吗?好的,只需将
Date
对象传递给您想要使用的任何格式化程序即可。这没什么区别。日期没有自己的格式,它只是Unix时代以来毫秒数的容器。。。