我尝试根据以下内容将 Time 对象设置为当前时间过去 15 分钟:
Time time = new Time("EST");
time.setToNow();
time.minute += 15;
time.normalize(true);
但是,在 time.setToNow() 之后,我在调试器中注意到时间对象的 isDST 字段等于 0,这表明根据 reference. 不在 DST 中。另外根据引用, time.normalize(true) 方法应该将 isDst 字段设置为 -1,然后计算 isDst 的正确值,但在我的情况下, isDst 值保持不变,为 0,所以时间是向后拨一小时。
我知道我们现在处于夏令时,所以我希望 isDst 字段能够反射(reflect)这一点,但事实并非如此。有什么想法吗?
最佳答案
I know we're in DST now, so I expect the isDst field to reflect this, but it's not. Any ideas?
这可能是因为您指定了“EST”
作为时区。这是东部标准时间 - 没有夏令时的概念。
如果您使用诸如“America/New_York”之类的内容,我怀疑您会得到不同的答案。这是一个 zoneinfo 时区标识符,涵盖一年中不同时间的 EST 和 EDT。
关于java - Android.text.format.Time 未正确设置 isDst?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16429063/