diff --git a/core/include/Common/DateUtils.h b/core/include/Common/DateUtils.h new file mode 100644 index 0000000..7d80539 --- /dev/null +++ b/core/include/Common/DateUtils.h @@ -0,0 +1,19 @@ +#ifndef SCIQLOP_DATEUTILS_H +#define SCIQLOP_DATEUTILS_H + +#include "CoreGlobal.h" + +#include + +/** + * Utility class with methods for dates + */ +struct SCIQLOP_CORE_EXPORT DateUtils { + /// Converts seconds (since epoch) to datetime. By default, the datetime is in UTC + static QDateTime dateTime(double secs, Qt::TimeSpec timeSpec = Qt::UTC) noexcept; + + /// Converts datetime to seconds since epoch + static double secondsSinceEpoch(const QDateTime &dateTime) noexcept; +}; + +#endif // SCIQLOP_DATEUTILS_H diff --git a/core/src/Common/DateUtils.cpp b/core/src/Common/DateUtils.cpp new file mode 100644 index 0000000..635bbf2 --- /dev/null +++ b/core/src/Common/DateUtils.cpp @@ -0,0 +1,13 @@ +#include "Common/DateUtils.h" + +QDateTime DateUtils::dateTime(double secs, Qt::TimeSpec timeSpec) noexcept +{ + // Uses msecs to be Qt 4 compatible + return QDateTime::fromMSecsSinceEpoch(secs * 1000., timeSpec); +} + +double DateUtils::secondsSinceEpoch(const QDateTime &dateTime) noexcept +{ + // Uses msecs to be Qt 4 compatible + return dateTime.toMSecsSinceEpoch() / 1000.; +}