首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >夏令时在我们的系统中引起问题

夏令时在我们的系统中引起问题
EN

Stack Overflow用户
提问于 2013-10-29 17:17:18
回答 1查看 253关注 0票数 4

我陷入了冲突。我有一个24小时时间表,但问题是,11月3日凌晨2点,时间将从凌晨2点改为凌晨1点,这意味着减去一个小时。我怎样才能用Java来处理这件事。我从派对上得到的那首歌说..。

  1. 上午01: 05 (第一场表演)
  2. 上午01: 05 (第二场秀)
  3. 凌晨3点05分(第三场秀)等等。

第二场比赛应该是2:05,但是由于时间的变化,现在是1:05。相同的时间导致异常。请帮助我如何处理这个场景。

谢谢

下面是在Apache中使用XSL文档生成PDF计划时所遇到的错误。

代码语言:javascript
复制
     Caused by: java.lang.IndexOutOfBoundsException: Index: 450, Size: 421
     at java.util.ArrayList.RangeCheck(ArrayList.java:547)
     at java.util.ArrayList.get(ArrayList.java:322)
     at org.apache.fop.layoutmgr.table.ColumnSetup.getXOffset(ColumnSetup.java:224)
     at org.apache.fop.layoutmgr.table.TableContentLayoutManager.getXOffsetOfGridUnit(
     TableContentLayoutManager.java:603) at              
     org.apache.fop.layoutmgr.table.TableContentLayoutManager$RowPainter.
    addAreasForCell(TableContentLayoutManager.java:981)
at   org.apache.fop.layoutmgr.table.TableContentLayoutManager$RowPainter.
    addAreasAndFlushRow
    (TableContentLayoutManager.java:943)
at org.apache.fop.layoutmgr.table.TableContentLayoutManager$RowPainter.
    handleTableContentPosition(TableContentLayoutManager.java:800)
at org.apache.fop.layoutmgr.table.TableContentLayoutManager.iterateAndPaintPositions
    (TableContentLayoutManager.java:754)
at org.apache.fop.layoutmgr.table.TableContentLayoutManager.addAreas
    (TableContentLayoutManager.java:687)
at org.apache.fop.layoutmgr.table.TableLayoutManager.addAreas
    (TableLayoutManager.java:346)
at org.apache.fop.layoutmgr.AreaAdditionUtil.addAreas(AreaAdditionUtil.java:116)
at org.apache.fop.layoutmgr.FlowLayoutManager.addAreas(FlowLayoutManager.java:297)
at org.apache.fop.layoutmgr.PageSequenceLayoutManager$PageBreaker.addAreas
    (PageSequenceLayoutManager.java:356)
at org.apache.fop.layoutmgr.AbstractBreaker.addAreas(AbstractBreaker.java:507)
at org.apache.fop.layoutmgr.AbstractBreaker.addAreas(AbstractBreaker.java:370)
at   org.apache.fop.layoutmgr.PageSequenceLayoutManager$PageBreaker.doPhase3
    (PageSequenceLayoutManager.java:369)
at org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:345)
    at org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:263)

只有此计划引发错误。所以我猜是因为时间的变化。知道如何容纳/修复这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2013-10-29 17:31:19

11月3日凌晨2点,时间将从凌晨2点改为凌晨1点,这意味着减去一个小时。我怎么用Java处理这件事

在某些地方,当地时间会改变,而在另一些地方则不会。时间本身不会改变,只是当地对“当前时间”的描述(它本身保持相当恒定,或者在我们生活的这个不精确的旋转岩石球上尽可能地保持不变)。

重点是,你不应该减掉任何东西。因为基础数据中的任何内容实际上都没有改变,所以只有该数据的本地视图。

如何存储日期/时间值?如果您没有对基础数据使用UTC时间,那么您应该使用。因为你目前面临的原因,以及其他非常相似的原因,这会造成其他非常相似的问题。重点是将存储的实际数据与任何特定用户对该数据的视图分开。

使用以通用格式存储的底层日期/时间数据,您可以在需要时动态转换它,通常用于显示目的。(有时也用于局部计算。)像Joda时间这样的库对此非常有用,已经投入了大量的时间和精力来理解和解决您当前面临的问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19664964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档