我想知道是否有一种方法可以构建一个java TimeZone对象,给定2 gmt-hour-offsets 作为整数。例如,如果我被赋予(-5, -6)
,那么我希望能够将其解释为 EST 时间。此外,一旦我知道它对应的位置,我希望能够找出该时区中的给定日期是否在DST中。理想情况下,
public static TimeZone getTimeZone(int offsetHrs, int dstOffsetHrs);
...
TimeZone tz = getTimeZone(-5, -6);
if(tz.isDST(currentDate)) {
//Do stuff...
}
然后如果offsetHours和dstOffsetHrs是相同的,那么我们忽略dst ....不要问为什么,这是一个要求,我需要确认可以完成,否则我需要看一些其他地方的重大变化 提前致谢
答案 0 :(得分:2)
否 - 可能有多个时区具有相同的偏移,但在不同的日期进行转换。当然,如果你很高兴接受这种潜在的模糊性,那就不可能......
例如,使用Joda DateTimeZone
你可能想要从某个固定日期(例如2010年1月1日)开始,并查看每个时区的下几个转换 - 如果时区有过渡 - 计算其标准/日光偏移量。然后,您可以使用isStandardOffset
来确定特定时刻是在DST还是标准时间。