• Stars
    star
    57
  • Rank 505,097 (Top 11 %)
  • Language
    Erlang
  • License
    Apache License 2.0
  • Created over 13 years ago
  • Updated about 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Erlang library for conversion from one local time to another

Erlang Localtime

Public exports

  • utc_to_local/2 – Converts UTC time to local according to specified Timezone
  • local_to_utc/2 – Converts local time to UTC
  • local_to_local/3 – Converts local time to local
  • tz_name/2 – Returns a timezone name (E.g. MSK, MSD, etc)
  • tz_shift/2 – Returns time difference between local datetime and GMT
  • tz_shift/3 – Returns time difference between local datetime and required timezone

Details

Types

  • DateTime = {date(), time()}.
  • TimeZone = TimeZoneFrom = TimeZoneTo = list(), e.g. "Europe/Moscow", "America/NewYork" or abbreviations "MSK", "MSD", etc.
  • ZoneName = {StdAbbr :: list(), StdName :: list()}, e.g. {"MSK","MSK"}
  • ZoneShift = {Sign :: '+' | '-', Offset :: non_neg_integer(), RemOffset :: non_neg_integer()}

Dialyzer

utc_to_local(DateTime, TimeZone) β†’ DateTime | {error, Reason}

local_to_utc(DateTime, TimeZone) β†’ DateTime | {error, Reason}

local_to_local(DateTime, TimeZoneFrom, TimeZoneTo) β†’ DateTime | {error, Reason}

tz_name(DateTime, TimeZone) β†’ ZoneName | {error, Reason}

tz_shift(DateTime, TimeZone) β†’ 0 | ZoneShift | {error, Reason}

tz_shift(DateTime, TimeZoneFrom, TimeZoneTo) β†’ 0 | ZoneShift | {error, Reason}

Note

Aabbreviation is just used to find appropriate timezone name. If you want to convert "MSK" β†’ "PDT", but source timezone is not in daylight saving, it will be corrected by library and "MSK" β†’ "PST" conversion will be made.

Examples of usage

Converts UTC time to local one

localtime:utc_to_local({{2010, 7, 22}, {17, 56, 23}}, "Europe/Moscow").
{{2010,10,10},{21,56,23}}

Converts local time to UTC one

localtime:local_to_utc({{2010, 10, 10}, {21, 56, 23}}, "Europe/Moscow").
{{2010,10,10},{17,56,23}}

Converts time from one local timezone to another local one

localtime:local_to_local({{2010, 10, 10}, {21, 56, 23}}, "Europe/Moscow", "Australia/Sydney").
{{2010,10,11},{3,56,23}}

Returns timezone name

localtime:tz_name({{2010, 10, 10}, {21, 56, 23}}, "Europe/Moscow").
{"MSK","MSK"}

localtime:tz_name({{2010,10,11},{3,56,23}}, "Australia/Sydney").
{"EST","EST"}

Calculates time difference between UTC and local one

localtime:tz_shift({{2013, 01, 22}, {18, 17, 00}}, "Europe/Moscow").
{'+',4,0}

localtime:tz_shift({{2013, 01, 22}, {18, 17, 00}}, "America/New York").
{'-',5,0}

Calculates time difference between two local timezones

localtime:tz_shift({{2013, 01, 22}, {18, 17, 00}}, "America/New York", "Europe/Moscow").
{'+',9,0}