2011-05-22 121 views
0

日期格式我有我的數據庫中的數據以這種格式幫助需要在Java

18-NOV-10

我有相同的格式傳遞到java.util.Date這樣

Date date = new java.util.Date(dateformater);

使得java.util.Date的結果是這樣的18-NOV-10

這是可能的?

我試過這樣

String strDate = "12-NOV-07"; 

    SimpleDateFormat sdfSource = new SimpleDateFormat("dd-MMM-yy"); 

    Date date = sdfSource.parse(strDate); 

    System.out.println(date); 

但我得到的結果爲 「週一11月12日00:00:00北京時間2007年」 我希望它只是 12-NOV-07"

+3

您正在將日期作爲文本存儲在數據庫中,而不是DateTime? – tofutim 2011-05-22 08:13:56

+0

你從「12-NOV-07」開始,期望的結果是「12-NOV-07」?我不明白。 – whiskeysierra 2011-05-22 08:29:26

回答

0

正如其他人所指出的那樣,你應該存儲你的日期爲日期,而不是字符串;不過...

如果你想打開一個Date回一個字符串中的格式,你可以使用以下方法:如果你需要,而不是可能將在5,只需使用toUpperCase()結果字符串上

DateFormat formatter = new SimpleDateFormat("dd-MMM-yy"); 
Date date = new Date(); 
String dateStr = formatter.format(date); // Gives "22-May-11" 

0
DateFormat sdf = new SimpleDateFormat("dd-MMM-yy"); 
Date d = sdf.parse("18-NOV-10"); 
+0

我試過了你的程序,但是我得到的是Thu Nov 18 00:00:00 IST 2010,我只想當作18-NOV-10 – Kiran 2011-05-22 08:19:52

+0

我不明白你需要那個字符串,那麼你爲什麼要轉換成日期? – 2011-05-22 08:23:15

+0

我有一個方法列表getSummary(Date fromDate,Date toDate),這是在java.util.Date格式和數據庫中的數據是18-NOV-11格式 – Kiran 2011-05-22 08:29:35

1

您可以使用java.text.DateFormat中(實際上的SimpleDateFormat)來把你帶到你想要去的,但也許你不應該存儲日期爲數據庫中的字符串。它會做輸出和解析。

SimpleDateFormat sdf = 
      new SimpleDateFormat("DD-MMM-YY"); 
Date parsed = sdf.parse(dateString); 

http://javatechniques.com/blog/dateformat-and-simpledateformat-examples/

一旦你的日期,你可以把它變成你想要的格式,但它會在內存中Date對象舉行。您可以在形式得到它,你想使用

String dateString = sdf.format(parsed); 
0

改爲嘗試System.out.println(sdfSource.format(date).toUpperCase());Date對象將始終有一個時間組件;沒有辦法「禁用」該功能。你可以做的是在計算和顯示中忽略它。如果您使用的所有對象都設置爲一天中的同一時間,則可以安全地忽略比較中時間組件的影響。如果仔細觀察,您的Date對象的時間部分設置爲午夜。