Sitelet https://github.com/dmitryme/erlang_localtime
Skip to content

Latest commit

 

History

69 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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}

About

Erlang library for conversion from one local time to another

Resources

Stars

56 stars

Watchers

7 watching

Forks

Releases

Packages

Used by

Contributors

Languages