相关疑难解决方法(0)

夏令时和时区最佳实践

我希望能够将这个问题及其答案作为处理夏令时的权威指南,特别是处理实际的变更问题.

如果您有任何要添加的内容,请执行此操作

许多系统依赖于保持准确的时间,问题在于由于夏令时改变时间 - 向前或向后移动时钟.

例如,在订单获取系统中有一个业务规则取决于订单的时间 - 如果时钟发生变化,规则可能不那么明确.如何保持订单的时间?当然有无数的场景 - 这只是一个说明性的场景.

  • 你是如何处理夏令时问题的?
  • 您的解决方案中有哪些假设?(在这里寻找背景)

同样重要的是,如果不是这样的话:

  • 你尝试了哪些不起作用?
  • 为什么不起作用?

我会对编程,操作系统,数据持久性和该问题的其他相关方面感兴趣.

一般答案很好,但我也希望看到细节,特别是如果它们只在一个平台上可用.

timezone datetime utc datetimeoffset dst

2021
推荐指数
20
解决办法
40万
查看次数

f:convertDateTime显示错误的日期

在我的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字段中没有时间信息!

我究竟做错了什么?要显示正确的日期,我需要做什么?

谢谢汤姆

java jsf hibernate richfaces jsf-2

48
推荐指数
3
解决办法
6万
查看次数

JPA TemporalType.Date提供错误的日期

我有一个类,其日期字段表示一段数据的"有效起始日期".它的定义如下:

@Temporal( TemporalType.DATE )
private Date validFrom;
Run Code Online (Sandbox Code Playgroud)

在我从数据库中提取日期并显示它之前,似乎一切正常.如果我在前端选择2003年9月18日的日期,那么当我在数据库中检查确定的日期是保存的日期时保存它(数据库是MySQL 5.5.9列类型是DATE).然而,当我拿出一份清单时,显示的日期是2003年9月17日 - 前一天.

如果我选择在2003年3月26日或2003年12月25日之前或之后的一个日期,一切都很好,所以我猜这是与夏令时有关但错误在哪里蔓延?由于数据库似乎保持正确的日期,我猜测它必须在JPA转换回java.util.Date时 - java.util.Date是用于日期的最佳类吗?我已经看过一些人们使用Calendar的例子,但这看起来非常重,我不确定它能用于基于JSF的前端.

java mysql jpa

11
推荐指数
2
解决办法
4万
查看次数

JSF页面错误地反映日期 - 1天移位

Date的DB值是:

04-OCT-10
Run Code Online (Sandbox Code Playgroud)

Bean方法返回:

Mon Oct 04 00:00:00 EEST 2010
Run Code Online (Sandbox Code Playgroud)

JSF返回:

03.10.2010
Run Code Online (Sandbox Code Playgroud)

JSF代码:

...
     <h:outputText value="#{paym.dueDate}" >
            <f:convertDateTime pattern="dd.MM.yyyy"/>
     </h:outputText>
...
Run Code Online (Sandbox Code Playgroud)

是什么原因导致JSF日期值不正确?

谢谢

jsf date converter

6
推荐指数
1
解决办法
7637
查看次数

如何在jsf页面上设置日期模式?

<rich:column>
    <f:facet name="header">
          <h:outputText value="Expiry Date"/>
    </f:facet>
    <h:outputText value="#{item.endDate}">

    </h:outputText>
</rich:column>
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,我从数据库得到的日期是2012-09-03 00:00:00.0

现在,我想将日期模式设置为dd-MM-yyyy.

所以我要求的输出是03-09-2012.

但使用下面的代码(设置模式后)

<rich:column>
     <f:facet name="header">
         <h:outputText value="Expiry Date"/>
     </f:facet>
     <h:outputText value="#{item.endDate}">
          <f:convertDateTime pattern="dd-MM-yyyy"  />
     </h:outputText>
</rich:column>
Run Code Online (Sandbox Code Playgroud)

我得到的输出是02-09-2012

无论数据库中的日期是什么,它都会显示输出减少一天.

提前谢谢.

jsf jsf-2

5
推荐指数
1
解决办法
1120
查看次数

f:convertDateTime显示错误的小时

我的数据库中有日期时间.当我尝试显示它时,"小时"是错误的(6小时以上).

DB          2013-03-12 10:05:49
Display     2013/03/12 16:05:49
Run Code Online (Sandbox Code Playgroud)

我正在使用primefaces,这是代码:

<p:column id="fecha" headerText="Fecha" style="text-align: center">
  <h:outputText value="#{con.fecha}" >
    <f:convertDateTime pattern="yyyy/MM/dd HH:mm:ss"  />
  </h:outputText>
</p:column>
Run Code Online (Sandbox Code Playgroud)

我试图使用该模式HH,但它似乎不起作用.

jsf datetime primefaces

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

jsf ×4

datetime ×2

java ×2

jsf-2 ×2

converter ×1

date ×1

datetimeoffset ×1

dst ×1

hibernate ×1

jpa ×1

mysql ×1

primefaces ×1

richfaces ×1

timezone ×1

utc ×1