Spec-Zone.ru › Elixir 1.10

Calendar.TimeZoneDatabase поведение

Этот модуль определяет поведение для предоставления данных о часовых поясах.

IANA предоставляет данные о часовых поясах, которые включают данные о различных смещениях UTC и стандартных смещениях для часовых поясов.

Краткое описание

Типы

time_zone_period()

Период, в течение которого действует определённая комбинация смещения UTC, стандартного смещения и аббревиатуры зоны.

time_zone_period_limit()

Предел, когда начинается или заканчивается определённый период часового пояса.

Обратные вызовы

time_zone_period_from_utc_iso_days(arg1, arg2)

Период часового пояса для момента времени в UTC для определённого часового пояса.

time_zone_periods_from_wall_datetime(arg1, arg2)

Возможные периоды часового пояса для определённого часового пояса и даты и времени по местному времени.

Типы

time_zone_period()

Specs

time_zone_period() :: %{
  optional(any()) => any(),
  :utc_offset => Calendar.utc_offset(),
  :std_offset => Calendar.std_offset(),
  :zone_abbr => Calendar.zone_abbr()
}

Период, в течение которого действует определённая комбинация смещения UTC, стандартного смещения и аббревиатуры зоны.

Например, один период может соответствовать лету 2018 года в "Europe/London", когда действует летнее время / перевод часов, и длится со весны до осени. Осенью std_offset изменяется вместе с zone_abbr, поэтому для зимы требуется другой период.

time_zone_period_limit()

Specs

time_zone_period_limit() :: Calendar.naive_datetime()

Предел, когда начинается или заканчивается определённый период часового пояса.

Начало включается. Конец не включается. Например, если период с 2015-03-29 01:00:00 до 2015-10-25 01:00:00, то период включает и начинается с начала 2015-03-29 01:00:00 и длится до момента непосредственно перед 2015-10-25 01:00:00.

Начало или конец некоторых периодов бесконечны. Например, самый поздний период для часовых поясов без перевода времени или планов изменений. Однако для целей этого поведения они используются только для разрывов во времени по местному времени, где необходимые временные пределы находятся в определённое время.

Обратные вызовы

time_zone_period_from_utc_iso_days(arg1, arg2)

Specs

time_zone_period_from_utc_iso_days(Calendar.iso_days(), Calendar.time_zone()) ::
  {:ok, time_zone_period()}
  | {:error, :time_zone_not_found | :utc_only_time_zone_database}

Период часового пояса для момента времени в UTC для определённого часового пояса.

Принимает имя часового пояса и момент времени в UTC и возвращает time_zone_period для этого момента времени.

time_zone_periods_from_wall_datetime(arg1, arg2)

Specs

time_zone_periods_from_wall_datetime(
  Calendar.naive_datetime(),
  Calendar.time_zone()
) ::
  {:ok, time_zone_period()}
  | {:ambiguous, time_zone_period(), time_zone_period()}
  | {:gap, {time_zone_period(), time_zone_period_limit()},
     {time_zone_period(), time_zone_period_limit()}}
  | {:error, :time_zone_not_found | :utc_only_time_zone_database}

Возможные периоды часового пояса для определённого часового пояса и даты и времени по местному времени.

Если предоставленное datetime неоднозначно, возвращается кортеж с :ambiguous и двумя возможными периодами. Периоды в списке отсортированы по возрастанию времени начала.

Если предоставленное datetime находится в разрыве (например, во время «перевода часов» при переходе от зимнего времени к летнему), возвращается кортеж с :gap и двумя периодами с временными ограничениями вложенном кортеже. Первый вложенный кортеж из двух элементов — период до разрыва и время по местному времени с ограничением, когда заканчивается период. Второй вложенный кортеж из двух элементов — период сразу после разрыва и время по местному времени, когда период начинается сразу после разрыва.

Если для предоставленного datetime существует только один возможный период, возвращается кортеж с :single и time_zone_period.

© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.10.4/Calendar.TimeZoneDatabase.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API