我永远不会相信这可能会成为一个麻烦。我正在尝试制作一个始终在特定时区显示当地时间的时钟。
我的笔记本电脑目前设置为GMT0时区(英国)。
我想获得时区“欧洲/斯德哥尔摩”的毫秒数。
让我们说这是英国的17:00,我想得到相应于瑞典时间18:00的毫秒数。
答案 0 :(得分:1)
Date使用的时间(以毫秒为单位)与时区无关。只有当您打印(或解析)时间时,才使用本地化的DateFormat,这样可以确保您在特定时区获得时间。
答案 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);