Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Magnolia CMS DateFieldDefinition问题与夏令时更改_Java_Datetime_Magnolia - Fatal编程技术网

Java Magnolia CMS DateFieldDefinition问题与夏令时更改

Java Magnolia CMS DateFieldDefinition问题与夏令时更改,java,datetime,magnolia,Java,Datetime,Magnolia,使用时:如果我的计算机的当前日期与保存日期的夏令时不匹配,则保存日期的时间将不正确 相关类别: 相关的 编辑: 例子: 在本例中,我在本地运行Magnolia CMS 我的电脑的当前日期是2016年10月17日 我的电脑时区是瑞士/苏黎世;因此我在 在Magnolia管理面板中,我保存了2016年11月3日的日期 这就是它变得有趣的地方: 我将计算机日期更改为2016年11月2日 在Magnolia管理面板中,我打开了那个日期,它显示少了一个小时 插图 由于以下几个问题,Magnolia 5中

使用时:如果我的计算机的当前日期与保存日期的夏令时不匹配,则保存日期的时间将不正确

相关类别:

相关的

编辑:

例子: 在本例中,我在本地运行Magnolia CMS

我的电脑的当前日期是2016年10月17日

我的电脑时区是瑞士/苏黎世;因此我在

在Magnolia管理面板中,我保存了2016年11月3日的日期

这就是它变得有趣的地方: 我将计算机日期更改为2016年11月2日

在Magnolia管理面板中,我打开了那个日期,它显示少了一个小时

插图
由于以下几个问题,Magnolia 5中的日期/时间实施情况过去相当糟糕,现在也可能仍然相当糟糕:

它无法区分时间点,例如Skype与可能在另一个时区的人的约会和概念时间,例如何时做早餐的说明-无论在哪个时区,它都将始终在7:00,因此不是关于特定的时间点,而是关于7点的概念 它将日期保存为时间戳,尽管日期既不是时间戳也不是时间跨度。这种不准确会导致下一个问题: 由于日期被Magnolia 5视为时间戳,时间戳总是被Magnolia 5视为时间点,因此日期也被Magnolia 5视为时间点,尽管这总是错误的。日期始终只是上述意义上的概念,例如出生日期。如果我出生在1980年1月1日,那就是我的出生日期,在每个时区都是如此。我的出生日期不是1979年12月31日在另一个时区,就像前面提到的时间点语义学一样。 日期和时间保存为JCR中的日历实例,即带有时区的时间戳。当将数据从一个Magnolia实例传输到另一个导出、导入和激活实例时,实际时间戳按原样复制,而不是转换为目标系统的时区。这意味着,当目标系统最终读取这些值时,它可能会看到错误的日期和/或时间,除非它显式地转换这些值。 Magnolia过去使用浏览器的时区通过Vaadin日期/时间字段从用户处读取日期/时间,但使用服务器时区将其存储在JCR中。这意味着,在业务逻辑中,始终存在可能需要也可能不需要的隐式翻译。在许多情况下,错误的值最终会出现在存储库中,例如在输入出生日期时,因此以后基于这些值的处理有一定的出错概率。在任何情况下,存储库中保存的日期/时间都不是用户输入的日期/时间。
在我写给Magnolia的关于这些isuees的支持票中,他们说他们已经在Magnolia CORE 5.4.11中修复了它,该版本将从5.5.1开始提供。我还没有测试这些修复程序,但是除非您使用这个修复版本,否则我不建议您期待一个简单的解决方案来解决您的问题,这是我上面提到的问题的基础。我这样做只是为了说明,除非您确实需要它们所实现的用例,否则在提供的类中获得用例正确行为的空间是多么小。

您的用户配置文件中的时区是什么?是浏览器时区吗?更改自定义时区是否解决了问题?我为您编辑了这个问题:我指出了我在本地运行Magnolia CMS的事实,并更新了指向我机器时间的屏幕截图。这些截图的意思是:这并不是因为我现在在夏季预订了一个将在冬季举行的活动,而是当我们在冬季时,我希望该活动改变时间。这有意义吗?这与运行Magnolia的机器的时区无关,与Magnolia的设置时区无关,与浏览器的时区无关,与客户端计算机的时区无关。@AdrienBe-与此问题类似: