Releases: HowardHinnant/date
v3.0.3
v3.0.2
What's Changed
- Remove trailing whitespace and add gitattributes by @aaronfranke in #672
- call from_stream explicitly from date namespace to avoide mix up with C++20 std::chrono::from_stream by @JulZimmermann in #677
- static_cast to silent warning implict conversion by @nico-engels in #693
- Fix uninitialized values in date.h by @crawlserv in #698
- cmake: update project version by @Tachi107 in #699
- fix -Wshadow warnings by @tylawin in #700
- test: use -pthread when $CXX is g++ by @Tachi107 in #714
- Sync implementation and header signatures by @DavisVaughan in #724
- Fix comment typo in tz.h by @jwakely in #765
- Fix compilation when MISSING_LEAP_SECONDS is set to true by @techtim in #780
- Expose
iso_week::year::is_leap()
by @DavisVaughan in #785 - workaround for gcc bug 106757 by @msherman13 in #821
- Support Android for get current_zone() by @ndusart in #628
- Allow option() override by FetchContent by @TheStormN in #813
- Fix typo by @kkarbowiak in #808
- Support tz databases from release 2023d and newer by adding new zonenow.tab file to ignore list by @enolan-maystreet in #829
- Update gitattributes of zip files to binary by @KrisThielemans in #816
- build(cmake): always mark HAS_STRING_VIEW as part of the interface by @Tachi107 in #766
- build: use standard
CMAKE_INSTALL_INCLUDEDIR
for header install folder by @OlivierLDff in #753 - build: introduce
ENABLE_DATE_INSTALL
to allow user opt-out of install by @OlivierLDff in #752 - Stop using PATH_MAX by @Tachi107 in #744
- Implement USE_OS_TZDB for Android by @basilgello in #842
- Fixed build for WinRT and Android by @eugenegff in #804
- Fix expected file format under Windows. by @andreygorbachevrabobank in #845
- Fix current_zone not working on buildroot+glibc target - refs #846 by @Julien-Blanc-tgcm in #847
New Contributors
- @aaronfranke made their first contribution in #672
- @JulZimmermann made their first contribution in #677
- @nico-engels made their first contribution in #693
- @crawlserv made their first contribution in #698
- @tylawin made their first contribution in #700
- @techtim made their first contribution in #780
- @msherman13 made their first contribution in #821
- @ndusart made their first contribution in #628
- @TheStormN made their first contribution in #813
- @kkarbowiak made their first contribution in #808
- @enolan-maystreet made their first contribution in #829
- @KrisThielemans made their first contribution in #816
- @OlivierLDff made their first contribution in #753
- @basilgello made their first contribution in #842
- @andreygorbachevrabobank made their first contribution in #845
- @Julien-Blanc-tgcm made their first contribution in #847
Full Changelog: v3.0.1...v3.0.2
Version 3.0.1
Scoop up miscellaneous bug fixes over the past year.
Version 3
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).
Version 2.4.1
- Improved CMake support.
- New names for months:
January
- New names for weekdays:
Sunday
- Parsing with %Ez now supports optional minutes field.
- Miscellaneous bug fixes.
Version 2.4
- Introduce CMake support.
- Introduce
clock_cast
for converting between time_points of different clocks. - Allow conversion between
zoned_time<Duration1, TimeZonePtr1>
andzoned_time<Duration2, TimeZonePtr2>
. - Miscellaneous porting and warning fixes.
- Update to latest IANA website changes.
Version 2.3
- 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.
Version 2.2
- Rewrite of
format
andparse
:- 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.
- Many more types can be formatted and parsed with format and parse now.
- 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
andmake_time
in C++17.
- This eliminates the need for
- Many miscellaneous bug fixes.
Version 2.1
- 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.
Version 2
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.