<f:convertDateTime>
标签用于将用户输入转换为指定的日期。 您可以通过将组件标签内的convertDateTime
标签嵌套来将组件的数据转换为java.util.Date
。 convertDateTime
标签有几个属性,可以指定数据的格式和类型。
属性 | 类型 | 描述 |
---|---|---|
binding | DateTimeConverter | 它用于将转换器绑定到受委托Bean属性。 |
dateStyle | String | 它用于定义由java.text.DateFormat 指定的日期或日期字符串的日期部分的格式。 只适用于type 是date 或both ,如果pattern 未定义。 有效值:default ,short ,medium ,long 和full 。 如果没有指定值,则使用默认值。 |
for | String | 它用于引用该标签嵌套在其中的复合组件内的一个对象。 |
locale | String 或 Locale | 它是一个区域设置的实例,它在格式化或解析期间使用了日期和时间的预定义样式。 如果未指定,将使用FacesContext.getLocale 返回的区域设置。 |
pattern | String | 它用于自定义格式化模式,用于确定如何格式化和解析日期/时间字符串。 如果指定了此属性,则将忽略dateStyle ,timeStyle 和type 属性。 |
timeStyle | String | 它用于定义由java.text.DateFormat 指定的时间或日期字符串的时间部分的格式。 仅当类型为时间和模式未定义时才应用。有效值:default ,short ,medium ,long 和full 。 如果没有指定值,则使用默认值。 |
timeStyle | String | 它用于定义由java.text.DateFormat 指定的时间或日期字符串的时间部分的格式。 仅当类型为时间和模式未定义时才应用。有效值:default ,short ,medium ,long 和full 。如果没有指定值,则使用默认值。 |
timeZone | String 或 TimeZone | 它用于解释日期字符串中任何时间信息的时区。 |
type | String | 它用于指定字符串值是否包含日期,时间或两者。有效值是日期,时间或两者。 如果未指定值,则使用日期。 |
<f:convertDateTime>
实例打开NetBeans IDE创建一个Web工程:convertDateTime,其目录结构如下所示 -
创建以下文件代码,文件:index.xhtml 的代码内容如下所示 -
<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:c="http://java.sun.com/jsp/jstl/core"> <h:head> <title>Facelet Title</title> </h:head> <h:body> <h:form> <h:outputLabel for="username">User Name</h:outputLabel> <h:inputText id="user-id" value="#{user.name}"/><br/> <h:outputLabel for="age">Date of Birth</h:outputLabel> <h:inputText id="dob-id" value="#{user.dob}" converterMessage="Please provide date of birth in yyyy-mm-dd format"> <f:convertDateTime pattern="yyyy-mm-dd" /> </h:inputText><br/> <h:commandButton action="result.xhtml" value="Submit"/> </h:form> </h:body> </html>
文件:result.xhtml 的代码内容如下所示 -
<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:c="http://java.sun.com/jsp/jstl/core"> <h:head> <title>Facelet Title</title> </h:head> <h:body> <h1> Hello, <h:outputText value="#{user.name}"/> </h1> <h:outputLabel>Your date of birth is: </h:outputLabel> <h:outputText value="#{user.dob}"> <f:convertDateTime pattern="yyyy-mm-dd"/> </h:outputText> </h:body> </html>
文件:User.java 的代码内容如下所示 -
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.zyiz; /** * * @author Administrator */ import java.util.Date; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; @ManagedBean @RequestScoped public class User { String name; Date dob; public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getDob() { return dob; } public void setDob(Date dob) { this.dob = dob; } }
右键运行工程:convertDateTime,如果没有任何错误,打开浏览器访问:
http://localhost:8084/convertDateTime/
应该会看到以下结果 -
简单写入一些信息,然后提交 -
<f:convertDateTime>
实例2打开NetBeans IDE创建一个Web工程:convertDateTime2,其目录结构如下所示 -
创建以下文件代码,文件:index.xhtml 的代码内容如下所示 -
<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:c="http://java.sun.com/jsp/jstl/core"> <h:head> <title>Facelet Title</title> </h:head> <h:body> <h:form> <h:outputLabel for="username">User Name</h:outputLabel> <h:inputText id="user-id" value="#{user.name}"/><br/> <h:outputLabel for="age">Date of Birth</h:outputLabel> <h:inputText id="dob-id" value="#{user.dob}"> <f:convertDateTime pattern="yyyy-mm-dd"/> </h:inputText> <br/> <h:commandButton action="result.xhtml" value="Submit"/> </h:form> </h:body> </html>
文件:result.xhtml 的代码内容如下所示 -
<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:f="http://java.sun.com/jsf/core"> <h:head> <title>Response Page</title> </h:head> <h:body> <h1> Hello, <h:outputText value="#{user.name}"/> </h1> <h:outputLabel value="Your date of birth in different-different formats is given below:"></h:outputLabel><br/> <h:outputText value="#{user.dob}"> <f:convertDateTime type="date" dateStyle="medium"/> </h:outputText> <br/> <h:outputText value="#{user.dob}"> <f:convertDateTime type="date" dateStyle="full"/> </h:outputText> <br/> <h:outputText value="#{user.dob}"> <f:convertDateTime type="time" dateStyle="full"/> </h:outputText> <br/> <h:outputText value="#{user.dob}"> <f:convertDateTime type="date" pattern="dd/mm/yyyy"/> </h:outputText> <br/> <h:outputText value="#{user.dob}"> <f:convertDateTime dateStyle="full" pattern="yyyy-mm-dd"/> </h:outputText> <br/> <h:outputText value="#{user.dob}"> <f:convertDateTime dateStyle="full" pattern="yyyy.MM.dd 'at' HH:mm:ss z"/> </h:outputText> <br/> <h:outputText value="#{user.dob}"> <f:convertDateTime dateStyle="full" pattern="h:mm a"/> </h:outputText> <br/> <h:outputText value="#{user.dob}"> <f:convertDateTime dateStyle="long" timeZone="EST" type="both"/> </h:outputText> <br/> <h:outputText value="#{user.dob}"> <f:convertDateTime locale="de" timeStyle="long" type="both" dateStyle="full"/> </h:outputText> <br/> <h:outputText value="#{user.dob}"> <f:convertDateTime locale="en" timeStyle="short" type="both" dateStyle="full"/> </h:outputText> </h:body> </html>
文件:User.java 的代码内容如下所示 -
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.zyiz; /** * * @author Administrator */ import java.util.Date; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; @ManagedBean @RequestScoped public class User { String name; Date dob; public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getDob() { return dob; } public void setDob(Date dob) { this.dob = dob; } }
右键运行工程:convertDateTime2,如果没有任何错误,打开浏览器访问:
http://localhost:8084/convertDateTime2/
应该会看到以下结果 -
简单写入一些信息,然后提交 -