在不输入任何日期时间的情况下,我必须使用什么API来获取2个时区之间的时差。
我现在正在做的是,从一个时区做一个临时日期(午夜),然后转换为utz,然后再转换到另一个时区,然后计算两者的持续时间。它正在工作但是有一个更简单的api来通过给出区域的名称来获得时差吗?
评论太长了,所以我把它放在这里。 服务器是差异的。时区,数据/信息来自不同时区的客户端,并以utc格式保存在数据库中。当客户端在特定日期请求交易历史记录时出现问题。似乎不是将请求的日期(客户端时区)简单转换为utc,我需要将服务器时区和客户端时区的时差添加到转换的utc时间以获取正确的日期。 (所以我就像上面所说的那样)。现在我发现应该加上或减去时差,具体取决于前面的时区。好吧无论如何,感谢大家的投入。需要项目尽快运行,所以他们决定在此期间只使用一个时区。是否实施我将为未来的项目寻求解决方案。 :)
答案 0 :(得分:1)
我不确定我是否正确理解了你的问题。您是否尝试在不使用任何其他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());