我正在使用primefaces的日历组件.我在VO中有一个相应的字符串.在保存数据库时,我需要将字符串转换为java.sql.date.
xhtml:
<p:calendar value="#{articlePromo.startDate}"
id="vendorStartDateInputTxt" pattern="dd/MM/yyyy" mode="popup" showOn="button">
<f:convertDateTime type="date" dateStyle="short" pattern="dd/MM/yyyy" />
</p:calendar>
Run Code Online (Sandbox Code Playgroud)
startDate(String)的值为:Sat Apr 21 05:30:00 IST 2012
Java方法获取sql Date
public static Date getSQLDate(String strDate) {
java.sql.Date sqlDate = null;
try {
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
java.util.Date dt = formatter.parse(strDate);
sqlDate = new java.sql.Date(dt.getTime());
} catch (Exception e) {
e.printStackTrace();
}
return sqlDate;
}
Run Code Online (Sandbox Code Playgroud)
在转换日历的java.util.date时,我使用了模式dd/MM/yyyy.但它转换成的日期是:2012年4月21日星期六05:30:00.
谢谢,Shikha
尝试
<p:calendar value="#{articlePromo.startDate}"
id="vendorStartDateInputTxt" pattern="dd/MM/yyyy" mode="popup" showOn="button">
</p:calendar>
Run Code Online (Sandbox Code Playgroud)
其中startDate
是java.util.Date
对象
此外,如果要格式化Date对象,可以使用SimpleDateFormat:
DateFormat df=new SimpleDateFormat("dd/MM/yyyy");
String s=df.format(startDate);
Run Code Online (Sandbox Code Playgroud)
该f:convertDateTime
只转换字符串到对象,反之亦然.的对象的p:calendar
需要是一个java.util.Date
(它是value
属性).该字符串是您在浏览器中看到格式化的日期!
Primefaces日历会自动附加转换器.这就是你拥有pattern
属性的原因p:calendar
.
因此,您应该删除f:convertDateTime
Daniel已经提出的附加内容.
然后从转换java.util.Date
到java.sql.Date
非常简单:
public java.sql.Date sqlDate(java.util.Date calendarDate) {
return new java.sql.Date(calendarDate.getTime());
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
37875 次 |
最近记录: |