任何人都可以解释如何解释Java SimpleTimeZone规则。例如,欧洲/伦敦的规则如下:
var rule = {
"dstSavings": 3600000,
"startYear": 0,
"startMonth": 2,
"startDay": -1,
"startDayOfWeek": 1,
"endMonth": 9,
"endDay": -1,
"endDayOfWeek": 1,
"endTime": 3600000,
"rawOffset": 0,
"startTime": 3600000,
"startTimeMode": "UTC",
"endTimeMode": "UTC",
"useDaylight": true
};
阅读STZ documentation会有所帮助,但不适用于此特定规则。
endDay = 0表示什么?如果startDay = 0怎么办?
感谢,
答案 0 :(得分:2)
在the API(问题中提供的相同链接)中,构造函数文档说:
“startDay - 夏令时开始的月份日期。有关此参数的特殊情况,请参阅类别说明。”
“endDay - 夏令时结束的月份的日期。有关此参数的特殊情况,请参阅类说明。”
你能更具体地说一下令人困惑的事吗?
编辑:
好的,我现在更好地理解你的问题了。正如你自己想出的那样,正数表示“向前计数”,负数表示“向后计数”。 零似乎表示该位置没有夏令时。
编辑2:
每the source,“值为0是非法的。”请参阅第984行和第1045行。如果useDaylight
为false,这似乎没问题,但您的示例JSON中并非如此。
答案 1 :(得分:0)
endDay
和startDay
表示夏令时的结束和开始。因为这总是在从周六到周日的夜晚。在描述DST时,这表示该月的“startDay”星期日。在这种情况下,我不完全确定-1的含义。在linux时区中,5表示该月的最后一天,因此可能在此为-1。