2
我正在從<p:calendar>
組件中選擇一個日期,我希望將當前時間附加到所選日期。如何使用Primefaces中的當前TimeStamp獲取選定日期?
現在假設時間是12/13/13 04:30:12
。
我從日曆中選擇日期爲12/17/13
,我想將它保存爲12/17/13 04:30:12
。
我正在從<p:calendar>
組件中選擇一個日期,我希望將當前時間附加到所選日期。如何使用Primefaces中的當前TimeStamp獲取選定日期?
現在假設時間是12/13/13 04:30:12
。
我從日曆中選擇日期爲12/17/13
,我想將它保存爲12/17/13 04:30:12
。
您可以實現自定義@FacesConverter
並將其應用於<p:calendar>
組件。
@FacesConverter("timestampConverter")
public class TimestampConverter implements Converter {
@Override
public Object getAsObject(FacesContext facesContext,
UIComponent uIComponent,
String string) {
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yy");
Date date = null;
Calendar calendar = Calendar.getInstance();
try {
date = sdf.parse(string);
calendar.setTime(date);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar now = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, now.get(Calendar.HOUR_OF_DAY));
calendar.set(Calendar.MINUTE, now.get(Calendar.MINUTE));
calendar.set(Calendar.SECOND, now.get(Calendar.SECOND));
Timestamp result = new Timestamp(calendar.getTime().getTime());
return result;
}
@Override
public String getAsString(FacesContext facesContext,
UIComponent uIComponent,
Object object) {
if (object == null) {
return null;
}
return object.toString();
}
}
在getAsObject(..)
方法你可以從前端收到年代String
,追加當前時間和構建Timestamp
對象作爲結果。
從facelet裏(加我的測試按鈕)的片段看起來是這樣的:
<h:form>
<p:calendar value="#{myBean.date}" >
<f:converter converterId="timestampConverter" />
</p:calendar>
<p:commandButton title="Test" action="#{myBean.testAction}" />
<h:form>
,並在myBean
類應該有一個date
屬性與相應的存取方法。
@RequestScoped
@ManagedBean(name = "myBean")
public class MyBean {
private Date date;
public Date getDate() {
return date;
}
public void setDate(Date date) {
return date;
}
public String testAction() {
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/YY HH:mm:ss");
String output = sdf.format(date);
System.out.println("Selected date with timestamp: " + output);
}
}
更多信息:
的轉換器是將日期爲'太陽12月22日00:00:00 MST 2013',但我想它作爲'MM/DD/yyyy'我曾經使用過''但它沒有發生。 –
09Q71AO534