根据偏移和DST偏移确定时区

时间:2011-04-13 15:31:53

标签: java timezone dst

我想知道是否有一种方法可以构建一个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 ....不要问为什么,这是一个要求,我需要确认可以完成,否则我需要看一些其他地方的重大变化 提前致谢

1 个答案:

答案 0 :(得分:2)

否 - 可能有多个时区具有相同的偏移,但在不同的日期进行转换。当然,如果你很高兴接受这种潜在的模糊性,那就不可能......

例如,使用Joda DateTimeZone你可能想要从某个固定日期(例如2010年1月1日)开始,并查看每个时区的下几个转换 - 如果时区过渡 - 计算其标准/日光偏移量。然后,您可以使用isStandardOffset来确定特定时刻是在DST还是标准时间。