использование Timezone.convert, когда даты находятся на разных сторонах летнего времени - PullRequest
2 голосов
/ 08 марта 2019

Даты передаются на сервер в UTC, и я хочу преобразовать время в заданный TZ.Я сталкиваюсь с ошибкой, поскольку 10 марта в другом летнем времени для UTC отличается от моего тестового TZ (America / Los_Angeles).

date = #DateTime<2019-03-10 02:25:19.464342Z>
timezone = Timezone.get("America/Los_Angeles", d2)
Timezone.convert(date, timezone)

Строка 2 выдает следующую ошибку

{:error, {:could_not_resolve_timezone, "America/Los_Angeles", 63719403919, :wall}}

Я понимаю, что это из-за летнего времени, но в данное время Лос-Анджелес существует в другое время, что я и ищу, как мне получить это время?

1 Ответ

0 голосов
/ 08 марта 2019

Как насчет Timezone.resolve/3?

{:ok, date, _} = DateTime.from_iso8601("2019-03-10 02:25:19.464342Z")
unix = DateTime.to_unix(date)
timezone = Timex.Timezone.resolve("America/Los_Angeles", unix)
Timex.Timezone.convert(date, timezone)

Вывод:

#DateTime<2019-03-09 18:25:19.464342-08:00 PST America/Los_Angeles>
...