0

我想计算从“时间开始”到当前日期的天数。这可以通过简单的计算轻松实现(时间戳 / 24 / 60 / 60 / 1000 = daysFromBeginningOfTime),但问题是我也需要注意时区。世界各地的时间戳都是相同的,但是当您使用正确的时区解析它时,它会反映位置之间的差异,因此仅使用时间戳是行不通的,我不想自己处理所有时区转换。

示例:如果伦敦是 23:30,日期编号是 18843,那么在阿姆斯特丹是 0:30,日期编号应该是 18844。

我看了看,joda.time但并没有真正找到我要找的东西。有人有想法么?

4

2 回答 2

1

(忽略零不是“时间的开始”这一点......并且时间开始的实际时间点可能是不可知的......)

以下是如何计算自“给定时区中的本地时间 UNIX 纪元” 1以来的天数。

  1. 获取代表本地时区的对象。
  2. 获取对象的时区偏移量
  3. 将其转换为毫秒并将其添加到当前的 UTC 时间。
  4. 像以前一样计算天数。

1 - ...不管那是什么意思。

于 2013-06-25T11:17:32.533 回答
1

我认为,问题的出现是由于错误的初始假设。

OP 在他的例子中提出的论点是不正确的。无论伦敦或阿姆斯特丹的时钟显示什么,与纪元开始的时差 - 在每个时间点 - 都与您在世界的哪个位置无关。

因此,解决方案是将给定的输入日期解析为 UTC 时间戳并像以前一样继续。

于 2013-06-25T11:26:31.530 回答