Files
ezic/README.md
2010-11-04 05:14:06 -07:00

1.4 KiB

ezic

ezic is a set of erlang utilities for the Olsen timezone database files.

see the tz database page for more information.

Usage

# download the timezone data files
wget 'ftp://elsie.nci.nih.gov/pub/tzdata*.tar.gz'
tar -xvzf tzdata*.tar.gz -C /path/to/tzdata

# remove a few troublesome files
cd /path/to/tzdata
rm *.sh *.tab factory

# build and run ezic
make all run
1> ezic:load("/path/to/tzdata").
2> ezic:localtime("Australia/Adelaide").

API

  • ezic:load(Folder)
  • ezic:localtime(TimeZone) -> datetime()
  • ezic:time(datetime(), TimeZone) -> datetime()
  • ezic:time2time(datetime(), TimeZoneFrom, TimeZoneTo) -> datetime()

Purpose

The recommended way of handling timezones in erlang involves setting the system environment variable TZ to the desired timezone, then calling erlang time functions. This technique is probably sufficient for many purposes, but it has a few key issues:

  • it only works on *nix systems,
  • it depends on your system's timezone data (preventing customization), and
  • you can create race conditions if you aren't careful

A pure erlang solution avoids all of these pitfalls, hence this project.

License

This project is in the public domain.