# howardhinnant/date

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/howardhinnant-date).**

3,379 stars · 729 forks · C++ · other

## Links

- GitHub: https://github.com/HowardHinnant/date
- awesome-repositories: https://awesome-repositories.com/repository/howardhinnant-date.md

## Topics

`calendar` `date` `datetime` `iana-database` `time` `timezone` `timezone-library`

## Description

This project is a comprehensive date and time library designed for parsing, formatting, and calculating dates and times with high precision. It provides a multi-calendar system implementation that supports conversions between proleptic Gregorian, Julian, ISO week, and Tabular Islamic calendars.

The library is distinguished by its high-precision time clocks and its implementation of the IANA time zone database. It tracks physical time using UTC, TAI, and GPS clocks to account for leap seconds and provides a system for managing geographic time zones and offsets based on IANA data.

The capability surface includes a date and time parser for extracting time points from text streams using locale-aware patterns. It also covers temporal arithmetic for calculating durations between time points and tools for converting time across different geographic zones.

## Tags

### Data & Databases

- [Date and Time Libraries](https://awesome-repositories.com/f/data-databases/date-and-time-libraries.md) — Provides a comprehensive suite of utilities for constructing and manipulating date and time values. ([source](http://howardhinnant.github.io/date/date.html))
- [Time Zone Management](https://awesome-repositories.com/f/data-databases/time-zone-management.md) — Converts time points between different geographic zones using the IANA Time Zone Database and custom offset rules.
- [Civil Date Management](https://awesome-repositories.com/f/data-databases/date-and-time-libraries/civil-date-management.md) — Provides a system for creating and manipulating dates using a proleptic Gregorian calendar. ([source](http://howardhinnant.github.io/date/d0355r7.html))
- [Custom Time Zone Rules](https://awesome-repositories.com/f/data-databases/time-zone-management/custom-time-zone-rules.md) — Allows the creation of user-defined time zone rules and offsets for zoned time calculations. ([source](http://howardhinnant.github.io/date/tz.html))

### Scientific & Mathematical Computing

- [High-Precision Physical Time Tracking](https://awesome-repositories.com/f/scientific-mathematical-computing/high-precision-physical-time-tracking.md) — Measures physical time using UTC, TAI, and GPS clocks while accounting for leap seconds and clock drift.
- [Clock Domain Casting](https://awesome-repositories.com/f/scientific-mathematical-computing/clock-domain-casting.md) — Implements a unified mechanism for transforming time values between different clock systems while preserving the absolute moment.
- [IANA Time Zone Database Integrations](https://awesome-repositories.com/f/scientific-mathematical-computing/iana-time-zone-database-integrations.md) — Uses a structured representation of the IANA time zone database to handle regional offsets and historical transitions.
- [Leap Second Management](https://awesome-repositories.com/f/scientific-mathematical-computing/leap-second-management.md) — Performs high-precision time calculations that account for leap seconds. ([source](http://howardhinnant.github.io/date/d0355r7.html))
- [Multi-Calendar System Implementations](https://awesome-repositories.com/f/scientific-mathematical-computing/multi-calendar-system-implementations.md) — Supports conversions between proleptic Gregorian, Julian, ISO week, and Tabular Islamic calendars.
- [Multi-Calendar Systems](https://awesome-repositories.com/f/scientific-mathematical-computing/multi-calendar-systems.md) — Supports conversions and calculations across Gregorian, Julian, ISO week, and Tabular Islamic calendars. ([source](https://cdn.jsdelivr.net/gh/howardhinnant/date@master/README.md))
- [Temporal Arithmetic](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/arithmetic-number-types/arithmetic-operations/temporal-arithmetic.md) — Calculates the precise duration between two time points in terms of years, months, weeks, or days.
- [Physical Clock Implementations](https://awesome-repositories.com/f/scientific-mathematical-computing/physical-clock-implementations.md) — Tracks physical time using UTC, TAI, and GPS clocks to account for leap seconds.
- [Type-Safe Clock Domains](https://awesome-repositories.com/f/scientific-mathematical-computing/type-safe-clock-domains.md) — Provides distinct types for system, UTC, and TAI time to prevent logic errors during clock conversion.
- [Calendar Arithmetic](https://awesome-repositories.com/f/scientific-mathematical-computing/calendar-arithmetic.md) — Provides logic to add or subtract years and weeks from ISO week dates. ([source](http://howardhinnant.github.io/date/iso_week.html))
- [Calendar Conversions](https://awesome-repositories.com/f/scientific-mathematical-computing/calendar-conversions.md) — Transforms civil or ISO-week dates into the proleptic Tabular Islamic calendar system. ([source](http://howardhinnant.github.io/date/islamic.html))
- [Calendar Logic Utilities](https://awesome-repositories.com/f/scientific-mathematical-computing/calendar-logic-utilities.md) — Determines the day of the week for a given system time point using ISO 8601 encoding. ([source](http://howardhinnant.github.io/date/iso_week.html))
- [Tabular Islamic Calendar Conversions](https://awesome-repositories.com/f/scientific-mathematical-computing/tabular-islamic-calendar-conversions.md) — Implements the proleptic tabular Islamic calendar through mathematical transformations from civil and ISO-week dates.
- [Time Point Conversions](https://awesome-repositories.com/f/scientific-mathematical-computing/time-point-conversions.md) — Transforms between system time points, local time points, and field-based representations. ([source](http://howardhinnant.github.io/date/date.html))

### Development Tools & Productivity

- [Date and Time Utilities](https://awesome-repositories.com/f/development-tools-productivity/date-and-time-utilities.md) — Provides a comprehensive set of tools for parsing, formatting, and calculating dates and times with high precision.
- [Date String Parsers](https://awesome-repositories.com/f/development-tools-productivity/date-and-time-utilities/relative-date-formatting/date-string-parsers.md) — Extracts structured time and date information from text streams using custom format patterns and locale-aware flags.
- [Historical Calendar Calculations](https://awesome-repositories.com/f/development-tools-productivity/date-and-time-utilities/calendar-date-calculations/historical-calendar-calculations.md) — Calculates dates and converts between civil, Julian, and ISO-week systems using a proleptic Julian calendar. ([source](http://howardhinnant.github.io/date/julian.html))
- [Proleptic Calendar Logic](https://awesome-repositories.com/f/development-tools-productivity/date-and-time-utilities/calendar-date-calculations/proleptic-calendar-logic.md) — Calculates historical dates by extending the Gregorian and Julian calendars backward in time.
- [Temporal Decompositions](https://awesome-repositories.com/f/development-tools-productivity/date-and-time-utilities/component-based-date-time-specifications/temporal-decompositions.md) — Decomposes durations since midnight into structured hours, minutes, seconds, and fractional seconds. ([source](http://howardhinnant.github.io/date/date.html))
- [Date Difference Calculators](https://awesome-repositories.com/f/development-tools-productivity/duration-formatters/duration-interval-calculators/date-difference-calculators.md) — Computes the precise duration between two time points in terms of years, months, weeks, or days. ([source](http://howardhinnant.github.io/date/date.html))

### Operating Systems & Systems Programming

- [Clock Domain Conversion](https://awesome-repositories.com/f/operating-systems-systems-programming/clock-domain-conversion.md) — Converts time points between different clock domains, such as translating system time into UTC or TAI. ([source](https://howardhinnant.github.io/date/tz.html))
- [Physical Time Tracking](https://awesome-repositories.com/f/operating-systems-systems-programming/physical-time-tracking.md) — Maintains continuous physical seconds using UTC, TAI, and GPS clocks. ([source](https://howardhinnant.github.io/date/tz.html))

### User Interface & Experience

- [Calendar System Interoperability](https://awesome-repositories.com/f/user-interface-experience/ui-components/form-input-components/calendar-components/calendar-system-interoperability.md) — Translates dates between Gregorian, Julian, ISO week, and Tabular Islamic calendar systems.
- [Locale-Aware Value Formatting](https://awesome-repositories.com/f/user-interface-experience/value-formatting-tags/locale-aware-value-formatting.md) — Translates time points into strings using customizable format flags and system-specific locale settings.

### Programming Languages & Runtimes

- [Time Zone Converters](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/date-and-time-utilities/time-zone-converters.md) — Converts local calendar date and time to UTC time points based on specific geographic zone rules. ([source](http://howardhinnant.github.io/date/tz.html))

### Software Engineering & Architecture

- [ISO 8601 Standards](https://awesome-repositories.com/f/software-engineering-architecture/data-exchange-standards/iso-8601-standards.md) — Implements ISO 8601 standards to map calendar dates to specific years, week numbers, and weekdays.

### Web Development

- [Calendar Field Decomposition](https://awesome-repositories.com/f/web-development/date-and-time-fields/calendar-field-decomposition.md) — Provides a mechanism to decompose continuous time points into discrete year, month, and day fields for calendar operations.
- [Date and Time Formatting](https://awesome-repositories.com/f/web-development/date-and-time-formatting.md) — Converts date and time objects into human-readable strings using locale-aware flags and custom patterns. ([source](http://howardhinnant.github.io/date/date.html))

### Part of an Awesome List

- [General Utilities](https://awesome-repositories.com/f/awesome-lists/devtools/general-utilities.md) — Date and time library based on C++11/14/17 standards.
