2010-03-09 53 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。