пытаясь понять правила Java SimpleTimeZone - PullRequest
1 голос
/ 09 марта 2010

Может ли кто-нибудь объяснить, как интерпретируются правила 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 полезно, но не для этого конкретного правила.

Что означает endDay = 0? Что если startDay = 0?

спасибо,

Ответы [ 2 ]

2 голосов
/ 09 марта 2010

В API (та же ссылка, которую вы указали в вопросе), документация конструктора гласит:

"startDay - день месяца, в который начинается летнее время. Для особых случаев использования этого параметра см. Описание класса."
"endDay - день месяца, в который заканчивается летнее время. Особые случаи этого параметра см. в описании класса."

Не могли бы вы более подробно рассказать о том, что сбивает с толку?

EDIT:

Хорошо, теперь я лучше понимаю ваш вопрос. Как вы уже поняли, положительное число означает «считать вперед», а отрицательное - «считать назад». Похоже, что ноль указывает на то, что в этом месте нет активного перехода на летнее время.

РЕДАКТИРОВАТЬ 2:

За источник , «значение 0 недопустимо». См. Строки 984 и 1045. Это нормально, если useDaylight ложно, хотя в вашем примере JSON это не так.

0 голосов
/ 09 марта 2010

endDay и startDay указывают на конец и начало перехода на летнее время. Как это всегда ночью с субботы по воскресенье. При описании DST это указывало на «startDay» воскресенье месяца. В этом случае я не совсем уверен, что означает -1. В часовых поясах Linux цифра 5 указывает на последний день месяца, поэтому, возможно, здесь -1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...