0

我正在尝试将 Time 对象设置为比当前时间晚 15 分钟,具体如下:

    Time time = new Time("EST");
    time.setToNow();
    time.minute += 15;
    time.normalize(true);

但是,在 time.setToNow() 之后,我在调试器中注意到时间对象的 isDST 字段等于 0,这表明根据引用不在 DST 中。同样根据参考,time.normalize(true) 方法应该将 isDst 字段设置为 -1,然后计算 isDst 的正确值,但在我的情况下,isDst 值保持不变,为 0,所以时间是向后移动了一小时。

我知道我们现在处于 DST,所以我希望 isDst 字段能够反映这一点,但事实并非如此。有任何想法吗?

4

1 回答 1

2

我知道我们现在处于 DST,所以我希望 isDst 字段能够反映这一点,但事实并非如此。有任何想法吗?

这可能是因为你已经给出"EST"了一个时区。那是东部标准时间 - 没有 DST 的概念。

如果你改用类似的东西"America/New_York",我怀疑你会得到不同的答案。那是一个 zoneinfo 时区标识符,它涵盖了一年中不同时间点的 EST 和 EDT。

于 2013-05-07T21:47:13.997 回答