2011-10-19 98 views
3

我想做到這一點:拆分日期和時間從日期輸入單獨

Date meetingDateAndTime; 

<h:inputText value="Date"/> 
<h:inputText value="Time"/> 

一旦我只有一個屬性日期,是否有可能在inputText的鍵入日期,並鍵入時間到另一個然後將它們合併在一起?

回答

6

您可以使用兩個DateFormats,一個輸出,其輸出時間日期和一個。 SimpleDateFormat

DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); 
DateFormat dateFormat = new SimpleDateFormat("hh:mm:ss"); 

編輯:對不起,我以爲你想寫從一個日期兩個字段不是由兩場創建一個日期。有關以下內容:

DateFormat dateFormat = new SimpleDateFormt("dd-MM-yyyy hh:mm:ss); 
String dateString = dateInputText + " " + timeInputText; 
Date date = dateFormat.parse(dateString); 
+2

如何在收集它們後合併它們? – pringlesinn

+0

參見編輯用於更新 –

+0

您只需要兩個字符串,一個保存日期,另一個爲了節省時間,然後使用這些屬性2做你的答案的第二部分,它工作正常!謝謝!!! – pringlesinn

0

試試這個:

<h:inputText value="dateobject"> 
    <f:convertDateTime pattern="dd-MM-yyyy" /> 
</h:inputText> 
<h:inputText value="dateobject"> 
    <f:convertDateTime pattern="hh:MM:ss" /> 
</h:inputText> 

衛生署,我誤解了這個問題:O)

+0

請說明這個答案是否令你滿意。說你誤解了這個問題會混淆你的回答。您可以刪除該評論或編輯/刪除您的答案。 – climmunk

1

我希望你知道,大多數的方法(和構造函數) java.util.Date類被棄用,因此,我建議你使用java.util.GregorianCalendar中代替。

試試這個:

<h:inputText value="#{myBean.meetingDate}"> 
    <f:convertDateTime pattern="yyyy-MM-dd" /> 
</h:inputText> 
<h:inputText value="#{myBean.meetingTime}"> 
    <f:convertDateTime pattern="hh:mm:ss" /> 
</h:inputText> 

這裏的支持bean:

import java.util.Date; 
import java.util.Calendar; 
import java.util.GregorianCalendar; 

public class MyBean { 
    private GregorianCalendar fullMeetingDateTimeInfo = new GregorianCalendar(); 
    private Date meetingDate; 
    private Date meetingTime; 

    public Date getMeetingDate() { return meetingDate; } 

    public Date getMeetingTime() { return meetingTime; } 

    public Date setMeetingDate(Date meetingDate) { 
     this.meetingDate = meetingDate; 
     fullMeetingDateTimeInfo.set(Calendar.YEAR, Integer.parseInt(new SimpleDateFormat("yyyy").format(meetingDate))); 
     fullMeetingDateTimeInfo.set(Calendar.MONTH, Integer.parseInt(new SimpleDateFormat("MM").format(meetingDate))); 
     fullMeetingDateTimeInfo.set(Calendar.DATE, Integer.parseInt(new SimpleDateFormat("dd").format(meetingDate))); 
    } 

    public Date setMeetingTime(Date meetingTime) { 
     this.meetingTime = meetingTime; 
     fullMeetingDateTimeInfo.set(Calendar.HOUR_OF_DAY, Integer.parseInt(new SimpleDateFormat("H").format(meetingTime))); 
     fullMeetingDateTimeInfo.set(Calendar.MINUTE, Integer.parseInt(new SimpleDateFormat("mm").format(meetingTime))); 
     fullMeetingDateTimeInfo.set(Calendar.SECOND, Integer.parseInt(new SimpleDateFormat("ss").format(meetingTime))); 
    } 

    public GregorianCalendar getFullMeetingDateTimeInfo() { 
     return fullMeetingDateTimeInfo; 
    } 
} 

正如你所看到的,我合併在一個Date對象與來自其他時間信息的最新信息日期對象。合併後的數據存儲在fullMeetingDateTimeInfo財產。 因此,在進一步您與fullMeetingDateTimeInfo屬性來工作,如果你想擁有完整的會議時間信息在一個對象合併。

祝你好運!

Konstantin

相關問題