日期(作为Date临时类型)存储在数据库中,如下所示:31.10.2012
当在UI中显示日期时,默认情况下呈现为该日期:2012-10-31
我使用对其进行了转换,<f:convertDateTime pattern="dd.MM.yyyy" />
并且意外地将其转换为
30.10.2012
的SimpleDateconverter
,供给具有相同的日期和相同的格式字符串返回31.10.2012,如所预期。
我想念什么?
谢谢
编辑:对于存储为Timestamp
相同转换的日期会产生正确的结果,因此我认为它与Date
解释为确切的午夜有关,而确切的午夜又可能被解释为属于2个不同的日期。但是我仍然不知道在哪里定义行为以及什么是最佳解决方法。
无疑,这是一个与时区有关的问题。
在日期/时间转换中,JSF默认为GMT(UTC)。因此,如果你的服务器平台默认时区为GMT + X(而不是GMT-X),则时间将回到过去的X小时。如果时间已经是00:00:00(午夜),则日期甚至可以追溯到过去的一天。
无论如何,有2种标准方法可以满足你的功能要求:
通过将以下上下文参数添加到JSF,告诉JSF使用服务器平台默认时区代替所有日期/时间转换web.xml:
<context-param>
<param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
<param-value>true</param-value>
</context-param>
更改每个<f:convertDateTime>
以明确指定特定于Webapp的时区。由于你居住在德国,并且日期格式模式也证实了这一点,因此我将假设你是CET。
<f:convertDateTime ... timeZone="CET" />
无论如何,不建议在整个应用程序中使用非通用甚至混合时区。建议将所有层和环境中的时区设置为UTC。不仅在服务器,前端层和表示层中,而且在SQL数据库以及后端层和持久性层中。这样,代码对时区和与DST(!)相关的事项不敏感,并且仅在必要时你可以专注于仅在演示过程中更改时区。
一个组件,它呈现已填好的表单的预览,当您单击左侧的表单时,它会在右侧显示它们。 第一个handleSwitchReview向我抛出了React钩子,所呈现的钩子比上一个呈现错误时要多 第二个不是。当我控制台日志道具,例如,我得到他们4-5次时,第一个函数的视图显示,但没有第二次,第二次只显示1次在控制台日志。 尝试移动setState并在控制台中记录父组件,但这个组件是唯一一个启动了很多次并中断的
我目前正在实现useSWR,以便从我的express和mongo-db后端获取数据。我能够顺利地从数据库中提取数据没有问题。下面是我用来实现这一点的代码: 然后通过以下方式访问: ,其中username是集合中的一个字段。 当我尝试将此信息添加到状态钩子中时,问题就出现了,然后状态钩子返回的错误呈现的钩子比上一次呈现的钩子要多。 删除行:和使用状态变量displayNumber的任何行就可以完全修
我附上JSON格式。我还需要将值从一个组件传递到另一个组件。除了localstorage之外,还有其他功能可以缓存值吗?
渲染后,我得到了当前分配给USESTECT常量的值。我已经在useEffect中初始化了常量值,但仍然无法获得结果。
问题内容: 我正在尝试向自定义添加提醒,以提出一个我需要从调用presentViewController的提示。但是,我不知道如何从该类访问当前实例。下面的代码是我尝试使用扩展名进行的操作。 我得到这个错误 表达式解析为未使用的函数。 问题答案: 您可以使用此扩展来查找显示单元格的viewController 或用于呈现: Swift 4.2更新 或用于呈现:
问题内容: 我在这里遇到了一些问题,我无法发出find_by_sql请求来呈现ActiveRecord关系。确实,我需要一个activerecord关系来提出新请求: 没有activerecord关系,我不能使用“ pluck”。因此,我想我必须将sql请求转换为Activerecord请求。但是,一旦我在ActiveRecord上使用“计数”,我就会遇到一个巨大的问题:最后,我没有ActiveR