https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92616
Bug ID: 92616 Summary: Inconsistency in time between system_clock::now() and time(nullptr) Product: gcc Version: 8.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: anthony.ajw at gmail dot com Target Milestone: --- Created attachment 47321 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47321&action=edit system_clock::now vs time(nullptr) inconsistency I have some code which uses std::this_thread::sleep_until to wait until a specific time The target time is set from a time_t value using std::chrono::system_clock::from_time_t(). Consistently, after waking, the value returned by time(nullptr) is less than the target time. However, the time returned by std::chrono::system_clock::now() is greater than the current time. e.g. the attached code creates the following output: Now (sc) time is 1574342217233406476 (system clock) =>1574342217(time_t) =>13:16:57 Now (time(nullptr)) time is 1574342217(time_t) =>13:16:57 Now (sc) time is 1574342219000231775 (system clock) =>1574342219(time_t) =>13:16:59 Now (time(nullptr)) time is 1574342218(time_t) =>13:16:58 As you can see, when woken, the time return by time(nullptr) is earlier than the corresponding time_t conversion from system_clock::now(). FYI, this is compiled using the g++-8.3.0 from the ubuntu 18.04 repos. g++ --version outputs: g++ (Ubuntu 8.3.0-6ubuntu1~18.04.1) 8.3.0