dmitryme/erlang_localtime

Erlang library for conversion from one local time to another

Erlang

56

10 commits

updated Feb 4, 2017

See the code

README

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}

Contributors

skorobkov

3 commits

jfacorro

2 commits

choptastic

1 commits

mokevnin

1 commits

dmitryme/erlang_localtime

Erlang library for conversion from one local time to another

Erlang

56

10 commits

updated Feb 4, 2017

See the code

README

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}

Contributors

skorobkov

3 commits

jfacorro

2 commits

choptastic

1 commits

mokevnin

1 commits

Languages

Erlang

85.3%

Perl

14.1%