實體:會議編輯獨立的日期和時間字段保存爲一個java.util.Date場
private Date meetingDateAndTime;
@Transient
String meetingDate;
@Transient
String hour;
@Transient
String minutes;
豆:
saveMeeting(){
String meetingTime = selectedMeeting.getHour()+":"+selectedMeeting.getMinutes();
Date calculatedDate = getAppendedTimeForDate(selectedMeeting.meetingDate,meetingTime);
selectedMeeting.setMeetingDateTime(calcualtedDate);
}
private static Date getAppendedTimeForDate(Date selectedDate,String t) throws Exception{
String d = new SimpleDateFormat("MM-dd-yyyy").format(selectedDate);
String DATE_FORMAT_NOW = "MM-dd-yyyy hh:mm";
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
Date calculatedDate=sdf.parse(d+" "+t);
return calculatedDate;
}
AddEditMeeting.xhtml:
<h:inputText value="selectedMeeting.meetingDate"/>
<h:inputText value="selectedMeeting.hour"/>
<h:inputText value="selectedMeeting.minute"/>\
對於date
,hour
和minutes
單獨的inputText,我可以保存meetingDateAndTime
正確地在格式MM-dd-yyyy hh:mm
格式的數據庫中,但要求是能夠編輯這些值以及即當用戶選擇會議,編輯頁面打開日期,小時和分鐘字段已填寫,然後用戶可以編輯並保存回數據庫。
任何指針表示讚賞。
您正在合併日期和時間,將組合解析爲一個'java.util.Date',然後將其保存到數據庫中。您需要在從數據庫檢索日期時將它們分開,並通過使用與java.util.Data API關聯的某些函數在相關的輸入字段中分別顯示日期,小時和分鐘。你可以使用一些轉換器來達到這個目的。除此之外,數據/時間在很大程度上取決於您必須充分考慮的特定時區。當需要考慮時區時,java.util.Date API不是你想要的。 – Tiny 2015-02-07 12:04:37
不知道我是否理解這個問題。我瞭解到您希望根據來自數據庫的數據預設屬性。但是對此的回答非常明顯(就像現在你正在做的事情相反,比如'meetingDate = extractMeetingDateFrom(dateField)'),我很困惑你到底有什麼問題。不用說,這一切確實是一個巨大的代碼味道。 – BalusC 2015-02-09 10:13:21
在屏幕上提取和顯示不是問題。一旦它已經存儲在數據庫中,我無法編輯日期。 – 2015-02-09 15:57:14