2013-03-08 233 views
0

我想以yyyy-mm-dd的格式存儲今天的日期。在存儲之前,我已經取得了今天的日期,格式化並再次解析格式化的字符串。它以不同於我想要的格式給出輸出日期。我如何獲取日期,格式化爲'yyyy-mm-dd' 並再次將其轉換爲日期,並希望輸出的格式爲'yyyy-mm-dd'。請找到下面的代碼並告訴我我在哪裏錯日期格式解析java

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
java.util.Date date = new java.util.Date(); 
java.util.Date date1; 
String datestring=dateFormat.format(date); 

try {   
    date1=dateFormat.parse(datestring); 
    System.out.print(date1); 
} catch (ParseException ex) { 
    Logger.getLogger(accordcclass.class.getName()).log(Level.SEVERE, null, ex); 
} 

上面的代碼我得到的輸出是 週四三月07 00:00:00 GMT 2013年,但我想要的輸出作爲2013年1月7日

回答

5

不要使用Date要打印的對象,請直接使用您的變量datestring。使用Date將調用toString,將使用Locale進行格式化。

編輯:添加,如果你想存儲你的Date變量格式,它不會這樣工作。 A Date不包含格式,它只是表示時間。如果您要在GUI,控制檯或其他任何位置顯示它,則需要指定一種格式,如果您希望它與當前的格式不同。

+0

我想輸出日期類型和首選格式,因爲我需要將日期存儲在分貝。直接使用日期字符串會給我字符串數據類型的值,這不是我的首選數據類型。 – crazyvi 2013-03-08 14:29:15

+0

@crazyvi,'java.util.Date'沒有首選格式。這是1970年1月1日以來的內部表示,以毫秒爲單位。您能向我們展示寫入數據庫的代碼嗎? – vikingsteve 2013-03-08 14:29:44

+0

@crazyvi如果您將數據庫中的日期存儲到「字符串」字段中,那麼在創建插入或更新語句時,請按照您的示例中那樣格式化日期。如果該字段是「日期」或「時間戳」,則不需要格式化該數據庫,數據庫將正確保存該值。您只需格式化即可「顯示」編輯中提及的日期。 – 2013-03-08 14:33:29

0

您正在使用DateFormat進行格式化和重新分析。

你不需要重新解析。只需使用DateFormat格式即可。

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
    java.util.Date date = new java.util.Date(); 
    String datestring=dateFormat.format(date); 
    System.out.println(datestring); 
+0

我的數據庫有一個數據數據類型的字段。我無法將日期字符串插入到該字段中。所以我需要再次將它轉換爲日期dataype。我該怎麼做? – crazyvi 2013-03-08 15:00:13

+0

您不需要轉換回日期 - 您已有日期。但Date僅包含一個時間(作爲一個長整數,表示自基準時間以來的毫秒數)。日期不包含任何格式化的字符串 - 即使您通過解析格式化的字符串來創建它。如果您同時需要數據庫的日期和輸出的格式化字符串,則需要兩個不同的對象。 – 2013-03-08 15:15:28

+0

如果我dint格式日期,當我嘗試插入一個日期插入到查詢字符串在java中,它說,語法錯誤:遇到「第3行」,第72列。 – crazyvi 2013-03-08 16:20:50

5

我有同樣的問題,這是我做的:

DateFormat inputDateFormat = new SimpleDateFormat("dd-MMM-yyyy HH:mm"); 
DateFormat outputDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 
System.out.println(outputDateFormat.format(inputDateFormat.parse("09-SEP-2013 10:00"))); 

這樣,我可以分析在數據庫兼容的格式原來的格式和輸出它的日期。

有人使用PreparedStatement的可能性,因爲之前有人提到過,但我不想。

+0

它可以幫助我很多...謝謝.. – ashokramcse 2014-01-04 08:55:52