字符串到日期格式未更改

时间:2016-04-14 17:41:38

标签: java datetime

我已经以字符串的形式格式化日期,我希望它以日期格式而不改变格式化模式

这是我的代码

Date currDate = new Date();//Fri Oct 31 03:48:24 PDT 2014
String pattern = "yyyy-MM-dd hh:mm:ss";
SimpleDateFormat formatter;
formatter = new SimpleDateFormat(pattern);
String formattedDate= formatter.format(currDate);//2014-10-31 04:23:42

这里正在进入" yyyy-MM-dd hh:mm:ss"格式和我希望它在日期格式相同的格式。

SimpleDateFormat sdf = new SimpleDateFormat(pattern);
Date paidDate = sdf.parse(formattedDate);

System.out.println(pattern + " " + paidDate);//Fri Oct 31 03:48:24 PDT 2014

但是我得到的结果是2014年10月31日星期二03:48:24,所以请帮助我以2014-10-31 04:23:42的日期格式获得结果

2 个答案:

答案 0 :(得分:1)

您正在执行此操作时打印日期:

System.out.println(pattern + " " + paidDate);

你需要使用你正在谈论的格式

System.out.println(pattern + " " + formatter.format(paidDate));

答案 1 :(得分:1)

由于System.out.println(pattern + " " + paidDate)在场景后面调用paidDate.toString(),这意味着java.util.Date#toString(),因此您无法获得预期的结果。如果您要格式化日期调用formatter.format(paidDate)

如果您想在调用toString()时正确格式化日期,则必须创建一个java.util.Date子类来覆盖toString()方法,以便返回结果formatter.format()。这样的事情:

public class MyDate extends Date {
   public String toString() {
     final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
     return formatter.format(this);
   }
}