Skip to content

Commit

Permalink
Merge pull request #2162 from NREL/RunManagerTests
Browse files Browse the repository at this point in the history
Fixing conversion between DateTime and QDateTime [#115395007]
  • Loading branch information
evanweaver committed Mar 18, 2016
2 parents a586c40 + 59905ac commit 3ec69ac
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 2 deletions.
8 changes: 6 additions & 2 deletions openstudiocore/src/utilities/time/DateTime.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -333,8 +333,10 @@ DateTime toDateTime(const QDateTime &qdt)
{
Date d = Date::fromDayOfYear(qdt.date().dayOfYear(), qdt.date().year());
Time t(0, qdt.time().hour(), qdt.time().minute(), qdt.time().second());
int secondsFromUtc = qdt.offsetFromUtc();
double utcOffset = secondsFromUtc * HOURS_PER_SECOND;

return DateTime(d, t, DateTime::localOffsetUTC());
return DateTime(d, t, utcOffset);
}

QDateTime toQDateTime(const DateTime& dt) {
Expand All @@ -344,7 +346,9 @@ QDateTime toQDateTime(const DateTime& dt) {
dt.date().dayOfMonth()),
QTime(dt.time().hours(),
dt.time().minutes(),
dt.time().seconds())
dt.time().seconds()),
Qt::OffsetFromUTC,
dt.utcOffset() * SECONDS_PER_MINUTE * MINUTES_PER_HOUR
);
}

Expand Down
31 changes: 31 additions & 0 deletions openstudiocore/src/utilities/time/Test/DateTime_GTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
#include "../DateTime.hpp"
#include "../../core/Exception.hpp"

#include <QDateTime>

#include <string>

using namespace std;
Expand Down Expand Up @@ -170,6 +172,35 @@ TEST(DateTime,EpochConversions) {
EXPECT_EQ(dateTime,copy);
}

TEST(DateTime, QDateTime) {
{
DateTime dateTime = DateTime::now();
QDateTime qDateTime = toQDateTime(dateTime);
DateTime dateTime2 = toDateTime(qDateTime);
EXPECT_EQ(dateTime, dateTime2);
}
{
DateTime dateTime = DateTime::nowUTC();
QDateTime qDateTime = toQDateTime(dateTime);
DateTime dateTime2 = toDateTime(qDateTime);
EXPECT_EQ(dateTime, dateTime2);
}
{
QDateTime qDateTime = QDateTime::currentDateTime();
DateTime dateTime = toDateTime(qDateTime);
QDateTime qDateTime2 = toQDateTime(dateTime);
EXPECT_EQ(qDateTime.toTime_t(), qDateTime2.toTime_t());
}
{
QDateTime qDateTime = QDateTime::currentDateTimeUtc();
DateTime dateTime = toDateTime(qDateTime);
QDateTime qDateTime2 = toQDateTime(dateTime);
EXPECT_EQ(qDateTime.toTime_t(), qDateTime2.toTime_t());
}
}



TEST(DateTime,ISO8601Conversions) {
{
DateTime dateTime = DateTime::now();
Expand Down

0 comments on commit 3ec69ac

Please sign in to comment.