2011-10-19 96 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

相关问题