2010-03-09 23 views
1

任何人都可以解释如何解释Java SimpleTimeZone规则。例如,对于欧洲/伦敦的规则如下:试图了解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

该代码是JavaScript,而不是Java? – BalusC 2010-03-09 20:45:47

+0

true,它的js对象表示法,认为描述SimpleTimeZone对象是很容易的。 – bushman 2010-03-09 20:48:43

+0

它们在任何构造函数的javadoc中详细解释。例如,这个完整的c'tor:http://java.sun.com/javase/6/docs/api/java/util/SimpleTimeZone.html#SimpleTimeZone%28int,%20java.lang.String,%20int,%20int ,%20int,%20int,%20int,%20int,%20int,%20int,%20int,%20int,%20int%29检查“参数”部分。如果不清楚,请详细说明究竟什么是不明确的。 – BalusC 2010-03-09 20:54:06

回答

2

the API(你在问题中提供相同的链接),构造的文件说:

“朝九特派 - 夏令时开始在其上月的某一天为特别参见类描述这个参数的情况。“ “
”endDay - 夏令时结束的月份的日期,请参阅类别说明以了解此参数的特殊情况。

你能更具体地了解什么是混淆?

编辑:

好吧,我现在更好地理解你的问题。正如你自己想出的那样,正数表示“向前计数”,负数表示“向后计数”。 零似乎表示在该位置没有夏时制。

编辑2:

the source “的值为0是非法的。”见984行和1045行。这似乎是好的,如果useDaylight是错误的,虽然这不是在你的示例JSON的情况。

+0

LT,我很困惑的是 startDay = 0或endDay = 0的情况。文件清楚地解释了正面和负面的情况,但没有解释ZERO。 谢谢 – bushman 2010-03-09 21:03:51

+0

LT,你是对的!它是 - 我的序列化器java - > json从我身边采取默认值为0.愚蠢的错误。 谢谢你教我如何另一种调试方式。竖起大拇指! – bushman 2010-03-09 22:19:22

0

endDaystartDay表示结束夏令时开始。因为这总是在从星期六到星期日的夜晚。在描述DST时,这表示了本月的星期天的开始日期。在这种情况下,我不完全确定-1是什么意思。在Linux时区中,5表示本月的最后一天,所以也许这里是-1。