Я просто хочу перевести свое время без перехода на летнее время.
Извините, но такое мышление проблематично.Переход на летнее время не является обязательным для людей в тихоокеанском часовом поясе США (обозначается America/Los_Angeles
).Они не могут выбирать, принимать или отказываться от участия.
Если вы пытаетесь выполнить какое-то заявленное деловое требование, такое как «Не беспокойтесь о летнем времени», - извините, но вы должны вернутьсятот.В противном случае ваш код будет генерировать неправильные результаты в течение большей части года.(В США период светового дня на самом деле длиннее, чем стандартный период!)
Однако, если вы действительно ищете не время в часовом поясе Тихоокеанского региона США, а просто время с фиксированным смещениемUTC-8, затем вместо America/Los_Angeles
используйте часовой пояс Etc/GMT+8
(обратите внимание, что знак намеренно инвертирован).При этом будет использоваться UTC-8 независимо от того, в какое время года вы говорите.
Имейте в виду, что зоны Etc/GMT*
в первую очередь предназначены для пограничных ситуаций, таких как время на борту морских судов.Если вы просто хотите отслеживать время в какой-либо другой части мира, выберите подходящий часовой пояс для этого места.Например, острова Питкэрн используют UTC-8 в течение всего года и называют его PST, а их идентификатор часового пояса равен Pacific/Pitcairn
.
См. Полный список часовых поясов здесь.
Насколько вы отметили, что 20:00:00 UTC
является 12:00:00 PST
, но 13:00:00 PDT
- действительно, такова реальность ситуации.Если вы отслеживаете 24-часовые периоды один за другим, то нет способа избежать этого факта.Даже если вместо этого вы отслеживаете «Полдень по тихоокеанскому времени» каждый день, вы получите различное соответствующее время UTC до и после переходов.
В то время как дни UTC равны 24 часам, дни перехода в тихоокеанском времени США23 часа, когда мы переключаемся с PST на PDT весной, и 25 часов, когда мы переключаемся с PDT на PST осенью.
И если вы думаете, , что сложный, учтите, что не каждый часовой пояс имеет 1 час дельты летнего времени.Остров Лорда Хау в Австралии (Australia/Lord_Howe
) имеет 30-минутную дельту.Это UTC + 10:30 в стандартное время и UTC + 11 в дневное время.