在我的Web应用程序中,我使用Hibernate检索数据并将其显示在RichFaces dataTable中.
在我的MySQL表中有一个类型为"date"的字段.当我将此字段打印到我的Bean中的日志时,它会显示数据库中的正确日期(例如2010-04-21).但在富人:dataTable中,它显示如下:
一零年四月二十零日
所以有一天的差异!
我添加了"f:convertDateTime"转换器并将"type"属性设置为"both"以便显示时间.现在它显示:
4/20/10 10:00:00 PM
我用过的"f:convertDateTime"代码:
<f:convertDateTime locale="locale.US" type="both" dateStyle="short"/>
Run Code Online (Sandbox Code Playgroud)
所以看起来像f:convertDateTime梦想有一段时间,因为MySQL-table字段中没有时间信息!
我究竟做错了什么?要显示正确的日期,我需要做什么?
谢谢汤姆
日期(作为日期时间类型)存储在我的数据库中,如下所示:31.10.2012
当我在UI中显示它时,它默认情况下呈现如下:2012-10-31
我使用<f:convertDateTime pattern="dd.MM.yyyy" />它转换它,并且意外地转向
30.10.2012
的SimpleDateconverter,供给具有相同的日期和相同的格式字符串返回31.10.2012,如所预期.
我错过了什么?
谢谢
编辑:对于存储为Timestamp相同转换的日期产生正确的结果,所以我认为它与Date解释为确切的午夜有关,反过来可能被解释为属于2个不同的日期.但我仍然不知道在哪里定义行为以及什么是最好的解决方法.