date

A date and time library based on the C++11/14/17 <chrono> header

OTHER License

Downloads
42
Stars
3.1K
Committers
104

Bot releases are hidden (Show)

date - Version 3.0.1 Latest Release

Published by HowardHinnant over 3 years ago

Scoop up miscellaneous bug fixes over the past year.

date - Version 3

Published by HowardHinnant over 4 years ago

This will likely be the final release of this library. From here you should migrate to C++20 as vendors begin to ship this library under namespace std::chrono.

The master branch will continue to be bug fixed as bugs arise. However a subsequent release may or may not happen.

The CMake support of this library is chaotic (to be kind). Personally I don't use it and instead follow the installation instructions found here: https://howardhinnant.github.io/date/tz.html#Installation (needed only for tz.h).

date - Version 2.4.1

Published by HowardHinnant over 6 years ago

  • Improved CMake support.
  • New names for months: January
  • New names for weekdays: Sunday
  • Parsing with %Ez now supports optional minutes field.
  • Miscellaneous bug fixes.
date - Version 2.4

Published by HowardHinnant almost 7 years ago

  • Introduce CMake support.
  • Introduce clock_cast for converting between time_points of different clocks.
  • Allow conversion between zoned_time<Duration1, TimeZonePtr1> and zoned_time<Duration2, TimeZonePtr2>.
  • Miscellaneous porting and warning fixes.
  • Update to latest IANA website changes.
date - Version 2.3

Published by HowardHinnant almost 7 years ago

  • Change directory structure to have include/ and src/.
  • Rename TZ_DB to tzdb (there's a backwards compatible typedef that may disappear in the future).
  • Specify constructors for nonexistent_local_time and ambiguous_local_time. This enables custom time zones to easily use them if needed.
  • Support multiple versions of the IANA database. The singleton is now a lock-free thread safe singly-linked list. The existing API implicitly references the front of this list.
  • Support custom time zones in zoned_time. See the Examples section in the tz documentation.
  • Add C++17 deduction guide support.
  • Give zoned_time a default constructor.
  • Give weekday_indexed a default constructor.
  • Add is_clock trait.
  • Add ONLY_C_LOCALE. Helps with systems with missing time_get/time_put facets.
  • Improve sub-picosecond support.
  • Minor bug and compatibility fixes.
date - Version 2.2

Published by HowardHinnant over 7 years ago

  • Rewrite of format and parse:
    • Many more types can be formatted and parsed with format and parse now.
      • durations, calendar types, tai_time, gps_time, ...
    • parse supports width parameter on many format flags.
    • to_stream and from_stream now return a reference to their streams.
    • Parsing whitespace very customizable with use of %n, %t and whitespace.
  • Using the OS-supplied timezone database now an option on Linux and macOS.
  • The downloaded timezone database install location can now be set at run time.
  • Improved support for basic_string with custom allocator.
  • duration I/O is merged into date.h.
  • Make zoned_time and time_of_day "deduction guide ready" for C++17.
    • This eliminates the need for make_zoned and make_time in C++17.
  • Many miscellaneous bug fixes.
date - Version 2.1

Published by HowardHinnant almost 8 years ago

  • Set USE_SHELL_API to default to 1. This better supports
    different flavors of linux.
  • INSTALL can now be configured on the command line.
  • Parsing and formatting fractional seconds can now handle
    super-second durations such as microfortnights.
  • Formatting and parsing rewritten, moved into date.h.
  • iOS support added.
  • Added trivial default constructors for most calendar
    types.
  • Add unary operators + and - to year.
  • Add to_stream.
  • Miscellaneous bug fixes.
date - Version 2

Published by HowardHinnant about 8 years ago

This is an API-breaking release relative to v1.0.0. The biggest difference is that day_point has been renamed to sys_days. This change was not done lightly, but I feel it was necessary to evolve the time zone library in the best direction. Indeed, the creation of the time zone library was itself a real-world test of the date library, and this change is a result of that test.

The time zone library has seen significant changes with the introduction of local_time, local_days, and zoned_time. zoned_time, created with the helper functions make_zoned is now the most convenient high-level API to access time zone computations.

Formatting and parsing utilities have been added to the time zone library. And "leap-second aware" clocks have also been added: utc_clock, tai_clock and gps_clock. This clocks have time_points that when subtracted across leap second insertions take those inserted leap seconds into account.

Also new with this version of the time zone library is the ability to have the IANA time zone database automatically updated to the latest version on the first use by your application. This is the default setting for linux and macOS, and requires just a little extra installation effort on Windows.

The header chrono_io.h provides streaming for the chrono::duration types. This gets rid of the need to use .count() and specify units manually when streaming durations.

New calendars introduced:

  • Julian
  • Islamic

Bug fixes include:

  • Much faster database initialization, even when compiled without optimizations on.
  • Port to RedHat
  • Support for wide streams
  • Fix overflow when minutes is 32 bits.
date - Initial release

Published by HowardHinnant over 8 years ago