12 #include <QSharedData>
14 class KDDateTimeData :
public QSharedData
21 : d(new KDDateTimeData)
33 , d(new KDDateTimeData)
40 QDateTime::operator=(rhs);
50 KDDateTime::operator QVariant()
const
52 return QVariant::fromValue(*
this);
66 if (
timeZone == QLatin1String(
"Z")) {
69 setTimeSpec(Qt::LocalTime);
71 setTimeSpec(Qt::OffsetFromUTC);
72 const int pos =
timeZone.indexOf(QLatin1Char(
':'));
74 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
75 const int hours =
timeZone.leftRef(pos).toInt();
76 const int minutes =
timeZone.midRef(pos + 1).toInt();
78 const QStringView timeZoneView(
timeZone);
79 const int hours = timeZoneView.first(pos).toInt();
80 const int minutes = timeZoneView.sliced(pos + 1).toInt();
82 const int offset = hours * 3600 + minutes * 60;
83 setOffsetFromUtc(offset);
92 QString baseString = s;
93 if (s.endsWith(QLatin1Char(
'Z'))) {
94 tz = QString::fromLatin1(
"Z");
97 QString maybeTz = s.right(6);
98 if (maybeTz.startsWith(QLatin1Char(
'+')) || maybeTz.startsWith(QLatin1Char(
'-'))) {
99 tz = std::move(maybeTz);
104 kdt = QDateTime::fromString(baseString, Qt::ISODate);
114 str = toString(QLatin1String(
"yyyy-MM-ddThh:mm:ss.zzz"));
117 str = toString(Qt::ISODate);
KDDateTime & operator=(const KDDateTime &)
static KDDateTime fromDateString(const QString &s)
QString toDateString() const
void setTimeZone(const QString &timeZone)