DateTime tools. Implement current TimeSpec getter and some QDateTime factory methods

This commit is contained in:
Bjørn Erik Jensen 2017-10-09 13:03:42 +02:00
parent 0cb97b9c74
commit daf791d068
2 changed files with 53 additions and 2 deletions

View File

@ -24,6 +24,15 @@
#include <ctime>
#include <cmath>
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
Qt::TimeSpec RiaQDateTimeTools::currentTimeSpec()
{
return Qt::UTC;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -46,7 +55,7 @@ quint64 RiaQDateTimeTools::secondsInYear()
QDateTime RiaQDateTimeTools::fromString(const QString& dateString, const QString& format)
{
QDateTime dt = QDateTime::fromString(dateString, format);
dt.setTimeSpec(Qt::UTC);
dt.setTimeSpec(currentTimeSpec());
return dt;
}
@ -105,7 +114,36 @@ QDateTime RiaQDateTimeTools::epoch()
QDateTime dt;
dt.setDate(QDate(1970, 1, 1));
dt.setTimeSpec(Qt::UTC);
dt.setTimeSpec(currentTimeSpec());
return dt;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QDateTime RiaQDateTimeTools::createDateTime()
{
auto& qdt = QDateTime();
qdt.setTimeSpec(currentTimeSpec());
return qdt;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QDateTime RiaQDateTimeTools::createDateTime(const QDate& date)
{
auto& qdt = QDateTime(date);
qdt.setTimeSpec(currentTimeSpec());
return qdt;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QDateTime RiaQDateTimeTools::createDateTime(const QDate& date, const QTime& time)
{
auto& qdt = QDateTime(date, time, currentTimeSpec());
return qdt;
}

View File

@ -23,6 +23,13 @@
#include <string>
class QDateTime;
class QDate;
class QTime;
namespace Qt
{
enum TimeSpec;
}
//==================================================================================================
//
@ -30,6 +37,8 @@ class QDateTime;
class RiaQDateTimeTools
{
public:
static Qt::TimeSpec currentTimeSpec();
static QDateTime fromString(const QString& dateString, const QString& format);
static QDateTime fromYears(double years);
@ -38,6 +47,10 @@ public:
static QDateTime epoch();
static QDateTime createDateTime();
static QDateTime createDateTime(const QDate& date);
static QDateTime createDateTime(const QDate& date, const QTime& time);
private:
static quint64 secondsInDay();
static quint64 secondsInYear();