2016-04-14 24 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我修改了我的答案 –