日期格式返回错误的日期

use*_*690 1 java datetime date date-conversion java.util.date

我正在尝试格式化Date对象并将格式化的对象转换回Date类型对象
这是我的代码

SimpleDateFormat inputDf = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss zzz");
System.out.println("before format  "+invoiceDate);
invoiceDate=inputDf.parse(inputDf.format(invoiceDate));
System.out.println("after format "+inputDf.format(invoiceDate));
System.out.println("after parse "+invoiceDate);
Run Code Online (Sandbox Code Playgroud)

从上面的代码输出是

before format : Mon Jan 14 10:55:40 IST 2013
after format  : Mon Jan 14 2013 10:55:40 IST
after parse   : Mon Jan 14 10:55:40 IST 2013
Run Code Online (Sandbox Code Playgroud)

你可以看到我解析日期对象后它转换回原始格式(格式显示格式之前),但我希望Date对象像它出现在第二个打印行(格式化后)的东西是.format方法返回String不是Date对象, 我怎样才能解决这个问题 ?

谢谢

maq*_*jav 6

Date对象未定义任何格式.Date随着时间的推移只是一个很长的数字.要修改其格式,您必须使用String对象,就像在示例中所做的那样.

如果你分析你的例子:

  • 格式之前:显示一个默认格式DateSystem.out.println提供.
  • 格式化后:显示使用后给出的格式SimpleDateFormat.
  • 解析之后:我们又是第一种情况.