DateTime: Fix time parsing for some time zones
This commit is contained in:
parent
750afb77f9
commit
2522f41488
@ -41,7 +41,7 @@
|
|||||||
IntegrationPluginDateTime::IntegrationPluginDateTime() :
|
IntegrationPluginDateTime::IntegrationPluginDateTime() :
|
||||||
m_timer(nullptr),
|
m_timer(nullptr),
|
||||||
m_todayDevice(nullptr),
|
m_todayDevice(nullptr),
|
||||||
m_timeZone(QTimeZone(QTimeZone::systemTimeZoneId())),
|
m_timeZone(QTimeZone::systemTimeZoneId()),
|
||||||
m_dusk(QDateTime()),
|
m_dusk(QDateTime()),
|
||||||
m_sunrise(QDateTime()),
|
m_sunrise(QDateTime()),
|
||||||
m_noon(QDateTime()),
|
m_noon(QDateTime()),
|
||||||
@ -288,12 +288,11 @@ void IntegrationPluginDateTime::processTimesData(const QByteArray &data)
|
|||||||
QString duskString = result.value("civil_twilight_end").toString();
|
QString duskString = result.value("civil_twilight_end").toString();
|
||||||
|
|
||||||
// calculate the times in each alarm
|
// calculate the times in each alarm
|
||||||
|
m_dawn = QDateTime(QDate::currentDate(), QTime::fromString(dawnString, "h:mm:ss AP"), Qt::UTC).toTimeZone(m_timeZone);
|
||||||
m_dawn = QDateTime(QDate::currentDate(), parseTime(dawnString), Qt::UTC).toTimeZone(m_timeZone);
|
m_sunrise = QDateTime(QDate::currentDate(), QTime::fromString(sunriseString, "h:mm:ss AP"), Qt::UTC).toTimeZone(m_timeZone);
|
||||||
m_sunrise = QDateTime(QDate::currentDate(), parseTime(sunriseString), Qt::UTC).toTimeZone(m_timeZone);
|
m_noon = QDateTime(QDate::currentDate(), QTime::fromString(noonString, "h:mm:ss AP"), Qt::UTC).toTimeZone(m_timeZone);
|
||||||
m_noon = QDateTime(QDate::currentDate(), parseTime(noonString), Qt::UTC).toTimeZone(m_timeZone);
|
m_sunset = QDateTime(QDate::currentDate(), QTime::fromString(sunsetString, "h:mm:ss AP"), Qt::UTC).toTimeZone(m_timeZone);
|
||||||
m_sunset = QDateTime(QDate::currentDate(), parseTime(sunsetString), Qt::UTC).toTimeZone(m_timeZone);
|
m_dusk = QDateTime(QDate::currentDate(), QTime::fromString(duskString, "h:mm:ss AP"), Qt::UTC).toTimeZone(m_timeZone);
|
||||||
m_dusk = QDateTime(QDate::currentDate(), parseTime(duskString), Qt::UTC).toTimeZone(m_timeZone);
|
|
||||||
|
|
||||||
qCDebug(dcDateTime) << " dawn :" << m_dawn.toString() << dawnString;
|
qCDebug(dcDateTime) << " dawn :" << m_dawn.toString() << dawnString;
|
||||||
qCDebug(dcDateTime) << " sunrise :" << m_sunrise.toString() << sunriseString;
|
qCDebug(dcDateTime) << " sunrise :" << m_sunrise.toString() << sunriseString;
|
||||||
@ -305,18 +304,6 @@ void IntegrationPluginDateTime::processTimesData(const QByteArray &data)
|
|||||||
updateTimes();
|
updateTimes();
|
||||||
}
|
}
|
||||||
|
|
||||||
QTime IntegrationPluginDateTime::parseTime(const QString &timeString) const
|
|
||||||
{
|
|
||||||
bool isPm = timeString.endsWith(" PM");
|
|
||||||
QString tmp = QString(timeString).remove(QRegExp("[ APM]*"));
|
|
||||||
QStringList parts = tmp.split(":");
|
|
||||||
if (parts.count() != 3) {
|
|
||||||
qCWarning(dcDateTime()) << "Error parsing timeString:" << timeString;
|
|
||||||
return QTime();
|
|
||||||
}
|
|
||||||
return QTime(parts.first().toInt(), parts.at(1).toInt(), parts.last().toInt()).addSecs(isPm ? 60 * 60 * 12 : 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void IntegrationPluginDateTime::onNetworkReplayFinished()
|
void IntegrationPluginDateTime::onNetworkReplayFinished()
|
||||||
{
|
{
|
||||||
QNetworkReply *reply = static_cast<QNetworkReply *>(sender());
|
QNetworkReply *reply = static_cast<QNetworkReply *>(sender());
|
||||||
|
|||||||
@ -83,8 +83,6 @@ private:
|
|||||||
void getTimes(const QString &latitude, const QString &longitude);
|
void getTimes(const QString &latitude, const QString &longitude);
|
||||||
void processTimesData(const QByteArray &data);
|
void processTimesData(const QByteArray &data);
|
||||||
|
|
||||||
QTime parseTime(const QString &timeString) const;
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void dusk();
|
void dusk();
|
||||||
void sunset();
|
void sunset();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user