我必须使用什么API来获取两个时区之间的时差,而无需输入任何日期时间。
我现在正在做的是从一个时区中设置一个临时日期(午夜),然后转换为utz,然后再次转换为另一个时区,然后计算两个时区的持续时间。它正在工作,但是是否有更简单的API可以通过仅给出区域名称来获得时差?
评论时间太长,因此我将其放在此处。
服务器在差异上。时区,数据/信息来自不同时区的客户端,并保存在utc的数据库中。当客户请求某个日期的交易历史记录时,会出现问题。看来这不是将请求的日期(客户端时区)转换为utc的简单转换,我需要将服务器时区和客户端时区的时差添加到转换后的utc时间中,以获得正确的日期。 (所以我像我上面说的那样做)。现在,我发现时差应加或减,具体取决于谁的时区在前。好吧,谢谢大家的投入。需要尽快运行项目,因此他们决定在此期间仅使用一个时区。是否实施,我将为以后的项目寻求解决方案。 :)
最佳答案
我不确定我是否正确理解了您的问题。您是否在不使用任何其他API的情况下获取不同时区的偏移量?
下面的代码将使用纯Java做到这一点:
String[] ids = TimeZone.getAvailableIDs();
HashMap<String, Integer> map = new HashMap<String, Integer>();
for (String id : ids) {
TimeZone tz = TimeZone.getTimeZone(id);
map.put(id, tz.getOffset(new Date().getTime()) / 1000 / 60); //in minutes
}
System.out.println(map.toString());
关于java - 2个时区之间的Jodatime时差,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25348121/