Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.

QtCS2018 Date Time

From Qt Wiki
Jump to navigation Jump to search

Howard Hinnant's new civil calendar and timezone proposals have made it to the C++ 20 draft (N4750)

  • Not implemented yet in any C++ Standard Library

Time Zone

  • Why would we use this, if we have to keep our existing code?
    • Allows us to hook to a standard tzdb implementation without forcing an ICU dependency
    • Good for Windows (MS doesn't want us to use the registry DB anyway)
    • Good for iOS (no need for Apple's ICU-wrapper API)
  • Can it be used without exceptions?
  • We should add a backend for it when we can
    • Drop unneeded backends

Front-end API

  • What do we do for QDate and QTime?
    • We should add conversion API for the new types as soon as we can
    • QT_HAS_INCLUDE(<chrono>), like QDeadlineTimer does for std::chrono::duration and std::chrono::time_point
  • Is there anything missing in C++20 draft which would prevent a QDateTime refactor in the 2020s?
    • (Keeping QDateTime convenience API but replace the QDateTimePrivate backend)
    • Eddy is working with Howard to make sure everything is there
  • Compilers don't have this yet, but should have it in 2019 or early 2020
    • But we don't think we can reimplement QDateTime using date.h for Qt 6
    • Too close to call, regarding BC guarantees
  • Review QDateTime API:
    • Anything we want to deprecate anyway?
    • Anything that would be difficult to implement with date.h and we'd want to provide different API for?

Calendar systems

  • Didn't have enough time to discuss this
  • We have a contribution for QAbstractCalendar
    • We need a solution that enables code outside of Qt to implement their own calendars