2013-04-10 30 views
0

我想獲取當前日期並格式化並將其保存到日期對象中。我嘗試下面的代碼,但得到一個錯誤,說日期是不可解析的。這是我曾嘗試:如何格式化當前日期並保存到日期對象中

SimpleDateFormat f = new SimpleDateFormat("d/M/yyyy"); 
Date date = f.parse(new Date().toString()); 

我需要的實際日期繼續作爲一個日期對象,將需要一些其他的代碼上

+4

'新的Date()'已經表示當前日期。你想做什麼 ? – 2013-04-10 14:42:02

+0

至少試着打印'new Date()。toString()'以查看當前的輸出格式並瞭解代碼可能失敗的原因。另外,你的代碼示例根本沒有意義(從一個新的Date創建一個新的Date)。 – 2013-04-10 14:44:09

+0

'Date'沒有格式:它只是一個時間點,有它自己的內部表示。你可以用特定格式的字符串*表示一個Date。 – 2013-04-10 14:45:40

回答

2

後使用您定義的格式,你需要將String值傳遞給parse方法,該方法遵循該模式,並且new Date().toString()肯定不遵循dd/MM/yyyy模式。

另外,new Date()已經是Date對象,您不需要將其轉換爲String並返回Date

1

按照Date class' Javadoc默認toString()方法總是返回格式

道瓊斯指數週一DD HH:MM:SS ZZZ YYYY

這是不是你的解析器定義一個。

0

我需要的實際日期繼續作爲一個日期對象

好像你只想要日期部分,而不是new Date()對象的時間部分。知道這一點,你有兩條路可走:

  1. 使用普通Java。您將需要一個日曆對象:

    public Date getCurrentDate() { 
        Calendar c = Calendar.getInstance(); 
        c.set(Calendar.HOUR, 0); 
        c.set(Calendar.MINUTES, 0); 
        c.set(Calendar.SECONDS, 0); 
        c.set(Calendar.MILLISECONDS, 0); 
        return c.getTime(); 
    } 
    
  2. 使用處理日期和時間的外部庫容易像Joda Time

    public Date getCurrentDate() { 
        return new LocalDate().toDate(); 
    }