从Date对象中删除毫秒部分

时间:2012-12-15 16:18:05

标签: java hibernate jsp struts2

我正在使用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小时格式

如果有任何其他方式或者如果您需要任何澄清,请建议我请问我。谢谢提前

3 个答案:

答案 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;