2014-09-01 139 views
-1

我正在開發一個JSF和primefaces應用程序。在我的some.xhtml文件中,我將p: calendar標記放在標記中,我想將它的默認值設置爲當前日期(格式例如:01-09-2014)。我寫了private Date startDateBean;作爲支持bean。當我不寫下面的代碼,只是分配 private Date startDateBean = Calendar.getInstance();它給我默認值(MON Sep 1 00:00:00 EST 2014),但沒有正確的格式(01-09-2014),這是我真正想要的。所以我的問題是如何以自定義格式(01-09-2014)設置日期並將其分配到Date對象private Date startDateBean = this.defaultDate();(請參閱下面:)以使用此格式(01-09-2014)在客戶端 中獲取默認值。如何將格式化日期轉換爲日期對象Java

我正在使用jdk 1.7。

private Date startDateBean = this.defaultDate(); 
private Date defaultDate() { 
    Date defaultDate = null; 
    try { 
     DateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); 
     defaultDate = sdf.parse(sdf.format(Calendar.getInstance().getTime())); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return defaultDate; 
} 
+0

良好的演示。怎麼辦??? – 2014-09-01 11:24:29

+0

你想從這裏得到什麼?你有任何錯誤或? – Ajit 2014-09-01 11:25:35

+0

@amitbhardwaj: - 請通過代碼。雖然我同意它很難找到,但是問題和問題出現在代碼中並且在那裏解釋 – 2014-09-01 11:27:15

回答

0

你是正確的(那種,見下文)與DateFormatter解析日期,但不會再次格式化顯示: -

sdf.format(defaultDate); 

也就是說,當你將它輸出: -

System.out.println(sdf.format(defaultDate)); 

Date對象只保存實際日期,而不是信息應該如何被格式化或者其中包含在的多條信息以顯示(秒,分鐘,小時,星期幾,月份,月份,年份)。因此,使用DateFormatter按照您希望顯示的順序僅選擇您希望顯示的部分。

此外

當你最初獲得的日期: -

defaultDate = sdf.parse(sdf.format(Calendar.getInstance().getTime())); 

你得到一個Date對象(Calendar.getInstance().getTime()),用它轉換爲StringDateFormatter(帶sdf.format())然後使用您的DateFormatter將其轉換回Date(使用sdf.parse()),只需執行以下操作: -

Date defaultDate = Calendar.getInstance().getTime(); 
0

可以使用

DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); 
String displayDate = dateFormat.format(new Date()); 

這會給你格式化的日期格式dd-MM-yyyy作爲字符串

+0

這不起作用。沒有重載的'parse()'它接受'Date'對象 – 2014-09-01 13:53:04

+0

我的不好,該方法應該是format()not parse(),現在正在更新... – 2014-09-02 06:04:56

相關問題