Fix time_point formatting for durations with certain ratios (#3430)

* Fix time_point formatting

* Add timestamps_ratios tests
This commit is contained in:
Patrick Geltinger
2023-05-12 00:25:21 +02:00
committed by GitHub
parent ebfb2e6779
commit d7592ad8bf
2 changed files with 26 additions and 1 deletions

View File

@@ -2142,7 +2142,8 @@ struct formatter<std::chrono::time_point<std::chrono::system_clock, Duration>,
epoch - std::chrono::duration_cast<std::chrono::seconds>(epoch));
if (subsecs.count() < 0) {
auto second = std::chrono::seconds(1);
auto second = std::chrono::duration_cast<Duration>(
std::chrono::seconds(1));
if (epoch.count() < ((Duration::min)() + second).count())
FMT_THROW(format_error("duration is too small"));
subsecs += second;