我已经以字符串的形式格式化日期,我希望它以日期格式而不改变格式化模式
这是我的代码
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的日期格式获得结果
答案 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);
}
}