2016-04-14 51 views
-1

我已经格式化的日期字符串的形式,我想它的日期格式不改变格式化模式字符串与格式日期没有改变

这里是我的代码

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 

,但我得到的结果周五10月31日3时48分24秒PDT 2014年,所以请帮助我获得结果为2014年10月31日4点23分42秒日期格式

+0

'日期'是自纪元以来的毫秒数;要修改默认输出,您需要一个'DateFormat.format'调用。 –

+0

但是,这返回我字符串,我需要在日期以及 –

+0

打印时只需使用'sdf.format'? –

回答

1

你打印的日期,因为它是当你这样做:

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

你需要使用的格式,你说话

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

返回的值是字符串我需要它日期 –

+0

日期已经在*** paidDate ***对象...你如何打印它是绝对不相关的对象... –

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); 
    } 
} 
+0

formatter.format()返回String,我需要Date –

+0

如果是这样,您需要创建一个java.util.Date的子类来覆盖toString()方法,以便返回formatter.format()的结果 –

+0

@MageshBalasubramaniam我修改了我的答案 –