Joda:获取当地毫秒的特定时区

时间:2015-03-04 19:20:35

标签: java

我永远不会相信这可能会成为一个麻烦。我正在尝试制作一个始终在特定时区显示当地时间的时钟。

我的笔记本电脑目前设置为GMT0时区(英国)。

我想获得时区“欧洲/斯德哥尔摩”的毫秒数。

让我们说这是英国的17:00,我想得到相应于瑞典时间18:00的毫秒数。

4 个答案:

答案 0 :(得分:1)

Date使用的时间(以毫秒为单位)与时区无关。只有当您打印(或解析)时间时,才使用本地化的DateFormat,这样可以确保您在特定时区获得时间。

答案 1 :(得分:1)

当时间表示为毫秒(或秒或纳秒等)时,从某些epoch开始几乎总是毫秒。在unixjava的情况下,这是UTC时间1970年1月1日午夜。

答案 2 :(得分:1)

时区通常按相对于UTC的整数小时数排列。在某些时区,它不是一个圆形小时,而是一个圆形小时的30分钟,15分钟或45分钟。

然而,对于低于一分钟的任何时间单位,所有这些时区都与UTC完全匹配。

因此,无论目前的第二或毫秒在瑞典是什么,它都是相同的,例如在尼泊尔,其时区是距离UTC的5:45分钟。

当您使用允许您检索给定时间的单独字段的对象时,毫秒字段通常仅反映自当前秒开始以来的毫秒数,而不是自午夜以来的毫秒数。因此它永远不会超过999,并且它将在世界范围内相同。

答案 3 :(得分:0)

在阅读了这里的答案并发现了另一条路线之后,这才是最终为我工作的。

DateTime curDateTime = new DateTime();
int offset = DateTimeZone.forID("Europe/Stockholm").getOffset(curDateTime.getMillis());
long milli = (curDateTime.getMillis()+offset);