Tapestry Extensions(TapX)DateField无法解析有效的DateFormat

时间:2014-03-25 11:55:39

标签: java parsing date-format tapestry datefield

我在使用tapx-datefield方面遇到了问题,更准确地说,使用了改进的DateField组件。

我的TML:

<t:form>
    <t:label for="dateAndTime"/>
    <tx:DateField t:id="dateAndTime" t:format="prop:dateTimeFormat"/>
    <br/>

    <input type="submit" value="Submit"/>
    <t:errors/>
</t:form>

<hr/>

<t:if t:test="dateAndTime">
    <p>Date and Time: ${dateAndTime}</p>

    <p:else>
        Nothing :(
    </p:else>
</t:if>

我的POJO课程:

public class TestDateTimePage {

    @Property
    @Persist(PersistenceConstants.FLASH)
    private Date dateAndTime;

    public DateFormat getDateTimeFormat() {
        return new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z");
    }
}

当我从日历中选择日期时,将忽略该格式的"ss z"部分: Error screenshot

我知道这个格式很好:

DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z");
System.out.println(df.format(new Date()));
  

Tue,2014年3月25日12:38:19 GMT

这是预期的行为(忽略秒,时区等)还是错误? 如果是,是否有已知的解决方法?

1 个答案:

答案 0 :(得分:0)

所以,我一直在GitHub上对tapx源进行一些检查,从我所看到的,它没有解析秒的固有支持:

来自tapx-datefield Date#parseDate函数:

...
return new Date(y, m, d, hr, min, 0);

而Date对象具有以下ctor:

var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);