0

我正在使用 struts2、mysql、hibernate 创建一个网站(用于表到类的映射)

在 Mysql 中存储的值是 2012-12-10 00:04:52

将其获取到变量“ addedDate”后,我尝试打印它

class d{
Date 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”任何建议请

我尝试将类型休眠 xml 文件更改为 Date 1st 然后更改为时间。每次它只给出时间或日期,但我想要两者都没有毫秒。

一种方法是在 d 类中创建一个字符串变量,将其添加到该字符串,然后进行修改并在 jsp 上显示。在那种情况下,我不知道要从 24 小时格式转换为 12 小时格式

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

4

3 回答 3

2

看看date标签。

来自文档的样本(改编):

<s:iterator value="dList" >
    <s:date name="addedDate" format="dd/MM/yyyy" />
</s:iterator>

(未测试)

于 2012-12-15T16:21:58.207 回答
0

正如戴夫建议的那样, aDateFormat绝对是去这里的方式。

背负已经实现的东西一开始toString看起来很优雅,但是随着代码的增长,显式地格式化你的日期以显示到用户界面会更易读、更稳定并且更不容易出错。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
于 2012-12-15T16:40:33.197 回答
0

如果你的休眠然后使用下面的注释它只在数据库中存储日期

@Column(name="BIRTH_DATE")
    @Temporal (TemporalType.DATE)
    private Date birthDate;
于 2012-12-17T11:05:28.177 回答