An Erlang library for comprehensive date, time, and timezone management, including formatting, parsing, conversion, and arithmetic.
qdate is an Erlang library for advanced date, time, and timezone management. It solves the problem of Erlang's primitive date/time handling by providing a unified API for formatting, parsing, conversion, and arithmetic across multiple timezones, integrating and extending the functionality of `ec_date` and `erlang_localtime`.
Erlang developers building applications that require robust date/time operations, such as scheduling systems, logging, internationalization, or any software dealing with timezone-aware data.
Developers choose qdate because it consolidates essential date/time functionalities into a single, well-documented library, offering timezone support, deterministic parsing, and extensive conversion capabilities that are missing in Erlang's standard library.
Erlang date, time, and timezone management: formatting, conversion, and date arithmetic
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Handles multiple date formats including Erlang tuples, Unix timestamps, and strings, converting between them seamlessly as detailed in the 'Acceptable Date Formats' section.
Supports timezone parsing, conversion, and process-specific settings with daylight saving time disambiguation, evidenced by examples like setting timezones per key and handling ambiguous conversions.
Configurable parsing behavior to avoid non-deterministic date inference, allowing developers to choose between filling missing date/time components with current values or zeros, as explained in the 'Solution For Non-deterministic parsing'.
Enables registration of custom parsing functions and format strings for application-specific needs, demonstrated with the compressed date parser example in 'Registering Custom Parsers'.
Relies on integrating ec_date and erlang_localtime, which can introduce versioning issues and require additional setup, as noted in the 'Purpose' and TODO sections.
The abstraction for handling multiple formats and timezone conversions may add latency compared to direct Erlang operations, particularly in high-throughput scenarios.
Uses PHP-style date format strings by default, which might not be intuitive for developers unfamiliar with PHP or require custom parsers for other standards.