Я пытаюсь преобразовать UT C DateTime в некоторые часовые пояса. Мне интересно, каков правильный способ преобразования часового пояса из UT C в желаемый часовой пояс.
, например.
- с 1 по июнь. 2020 г. в UT C
- с 1 по июнь. 2020 в «Австралия / Брисбен»
Этот часовой пояс на +10 часов, чем UT C.
У меня есть список дат.
например,
Теперь каждый день имеет несколько часов. когда вы конвертируете один день из UT C в "Australia/Brisbane"
. вот так
iex(6)> Calendar.DateTime.from_erl!({{2020, 6, 7}, {0, 0, 0}}, "Etc/UTC") |> Calendar.DateTime.shift_zone!("Australia/Brisbane")
#DateTime<2020-06-07 10:00:00+10:00 AEST Australia/Brisbane>
iex(7)>
это в основном правильно и то, что этот метод должен делать, но с ним есть некоторые проблемы.
День в UT C часовой пояс при достижении 14-го часа, например
iex(7)> Calendar.DateTime.from_erl!({{2020, 6, 7}, {14, 0, 0}}, "Etc/UTC") |> Calendar.DateTime.shift_zone!("Australia/Brisbane")
#DateTime<2020-06-08 00:00:00+10:00 AEST Australia/Brisbane>
iex(8)>
в Australia/Brisbane
его больше не 7 июня, но он станет 8 июня.
Я пытаюсь заполнить календарь через это, в котором.
в 14-й день 2 часа, такие как 22 и 23, которые в UT C приходятся на 14 июня, но когда они переходят на Australia/Brisbane
.
, когда я хочу показать в ежемесячном календаре, какой день доступен. с этим
iex(6)> Calendar.DateTime.from_erl!({{2020, 6, 7}, {0, 0, 0}}, "Etc/UTC") |> Calendar.DateTime.shift_zone!("Australia/Brisbane")
#DateTime<2020-06-07 10:00:00+10:00 AEST Australia/Brisbane>
iex(7)>
это правильно, но так как у него только 22 и 23 часа, которые наступают не 14 июня, а в часовом поясе Australia/Brisbane
, они будут на следующий день.
мой вопрос заключается в том, что имеет право преобразовывать день UT C в другой часовой пояс, где в какой-то момент он переключит полный день, так как это 10 + .. то же самое, что и где это 10 -...
В случае + ve он переходит на следующий день, а в случае -ve - на предыдущий.
Как мы можем преобразовать день UT C в другой часовой пояс где он также покрывает дневную смену или есть какой-нибудь лучший способ справиться с этим?