【发布时间】:2013-11-23 00:22:23
【问题描述】:
由于那天是夏令时,我得到的结果不正确。
我用过,
Calendar todays = Calendar.getInstance(TimeZone.getTimeZone("America/Los_Angeles"));
todays.set(Calendar.HOUR_OF_DAY, 24);
todays.set(Calendar.MINUTE, 0);
todays.set(Calendar.SECOND, 0);
todays.set(Calendar.MILLISECOND, 0);
如Joda-Time doc中所述,
考虑在夏令时边界增加 1 天。如果你使用一个 进行添加的时间,然后将添加 23 或 25 小时作为 合适的。如果您创建了一个等于 24 小时的持续时间,那么您 最终会得到错误的结果。
我没有找到任何关于如何使用 Joda-Time 实现这样一个周期的示例。
所以,我想动态获取每天包含的小时数,而不是像上面提到的那样用 24 小时硬编码。
【问题讨论】:
-
您没有告诉我们您要达到的目标,这让您很难理解您所说的“错误结果”是什么意思。
-
@JonSkeet- 我正在设置每天的总小时数,然后在图表中计算用户每天完成的工作量的值。这涉及到,用户在一天中的哪个时间做了哪些工作等。由于 DST 可能是 23 或 25 小时,因此结果不准确。
-
What I am trying to achieve?- 我想动态获取每天的小时数,而不是像问题中提到的那样用 24 小时硬编码。 -
您说“如问题中所述”,就好像我发表评论时它已经存在一样 - 它不是。
-
@JonSkeet - 好的。我认为我写的问题很明显。无论如何,谢谢。
标签: java android datetime jodatime dst