我正在使用struts2,mysql,hibernate创建一个网站(用于表到类的映射)
在Mysql中存储的值是 2012-12-10 00:04:52
将其提取到变量“addedDate”后,我尝试将其打印
class d{
Date addedDate;
}
addedDate是2012-12-10 00:04:52.0
在我给出的Hibernate映射(xml文件)中
<property name="addedDate" type="timestamp">
<column name="ADDED_DATE" length="19" not-null="true" />
</property>
在我创建的Action类中
List<d> dList
在jsp中
<s:iterator value="dList" >
<td><s:property value="addedDate" /></td>
</s:iterator>
我在屏幕上输出的输出 12/10/12 12:04:52 AM.000
我想在我的输出中删除“.000”,请提出任何建议
我尝试将类型hibernate xml文件更改为Date 1st然后更改。每次只给出时间或日期但我想要两者都没有毫秒。
1种方法是在类d中创建一个字符串变量,将该字符串添加到该字符串中,然后在jsp上进行修改和显示。在那种情况下,我不知道从24小时转换为12小时格式
如果有任何其他方式或者如果您需要任何澄清,请建议我请问我。谢谢提前
答案 0 :(得分:2)
查看date
标记。
doc(改编)的样本:
<s:iterator value="dList" >
<s:date name="addedDate" format="dd/MM/yyyy" />
</s:iterator>
(未经测试)
答案 1 :(得分:0)
正如Dave建议的那样,DateFormat
绝对是去这里的方式。
已经实现的toString
的Piggy-off off起初看起来很优雅,但是随着代码的增长,显式格式化显示到用户界面的日期将更加可读,稳定并且不易出错。正如您所看到的,当您使用System.out
打印它时以及当您要求JSP为您“打印”它时,您已经获得了不同的行为。
对于你想要做的事情,SimpleDateFormat
可以解决问题。要启动,它的JavaDocs有很好的解释它的工作方式和一堆例子。
给男人一条鱼......
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");
Date now = Calendar.getInstance().getTime();
System.out.println(formatter.format(now));
将打印:
12/15/2012 05:39:13 PM
答案 2 :(得分:0)
如果你是Hibernate,那么使用以下注释它只在数据库中存储日期
@Column(name="BIRTH_DATE")
@Temporal (TemporalType.DATE)
private Date birthDate;