簡體   English   中英

從日期分割日期和時間單獨輸入

[英]Split Date and Time from a Date to type separately

我想這樣做:

Date meetingDateAndTime;

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

一旦我只得到一個屬性Date,是否可以在inputText中鍵入Date並在另一個中鍵入Time然后將它們合並在一起?

您可以使用兩個DateFormats ,一個輸出Date,另一個輸出Time。 的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); 

我希望您知道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對象的日期信息與來自另一個Date對象的時間信息合並。 合並的數據存儲在fullMeetingDateTimeInfo屬性中。 因此,如果您希望將完整的會議時間信息合並到一個對象中,則必須使用fullMeetingDateTimeInfo屬性。

祝好運 !

康斯坦丁

試試這個:

<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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM