A rich, comprehensive date/time library for Elixir with full timezone support via the Olson database.
Timex is a comprehensive date and time library for the Elixir programming language, designed to handle complex temporal operations with full timezone support. It solves the problem of manipulating dates, times, datetimes, timestamps, intervals, and durations in Elixir applications, providing a rich set of functionalities beyond the standard library.
Elixir developers building applications that require advanced date/time manipulation, timezone handling, interval calculations, or integration with Ecto for database operations.
Developers choose Timex for its extensive feature set, full Olson timezone database support, seamless integration with Elixir's ecosystem, and extensibility via protocols and behaviors, making it the go-to library for complex date/time needs in Elixir.
A complete date/time library for Elixir projects.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Integrates the Olson database via Tzdata with automatic updates, providing reliable timezone conversions and daylight saving handling, as highlighted in the Key Features.
Offers rich functions for shifting, formatting, parsing, and comparing dates, with examples in the README like ISO formatting and relative time strings.
Allows custom date/datetime types to work with Timex through the Timex.Protocol, enabling seamless integration with user-defined types, as described in the Extensibility section.
Provides the timex_ecto package for easy use with Ecto models, simplifying database interactions with date/time data, mentioned in the Key Features.
Upgrading from older versions requires careful review of API changes and may involve significant code updates, as noted in the migration section with warnings about renamed or removed APIs.
Requires overriding :tzdata version and manual cleanup steps for escript builds, adding deployment overhead and potential errors, as detailed in the 'Timex with escript' note.
Only supports timezones from the Olson database or POSIX-TZ standard, excluding other systems or custom abbreviations, which the README explicitly states as a limitation.