summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/time/qdatetime.cpp76
-rw-r--r--src/corelib/time/qdatetime.h49
2 files changed, 30 insertions, 95 deletions
diff --git a/src/corelib/time/qdatetime.cpp b/src/corelib/time/qdatetime.cpp
index 4801fddb79..2e4757b525 100644
--- a/src/corelib/time/qdatetime.cpp
+++ b/src/corelib/time/qdatetime.cpp
@@ -1062,7 +1062,7 @@ QString QDate::toString(Qt::DateFormat format) const
switch (format) {
case Qt::RFC2822Date:
- return QLocale::c().toString(*this, QStringView(u"dd MMM yyyy"));
+ return QLocale::c().toString(*this, u"dd MMM yyyy");
default:
case Qt::TextDate:
return toStringTextDate(*this);
@@ -1074,9 +1074,7 @@ QString QDate::toString(Qt::DateFormat format) const
}
/*!
- \fn QString QDate::toString(const QString &format) const
\fn QString QDate::toString(const QString &format, QCalendar cal) const
- \fn QString QDate::toString(QStringView format) const
\fn QString QDate::toString(QStringView format, QCalendar cal) const
Returns the date as a string. The \a format parameter determines the format
@@ -1130,22 +1128,12 @@ QString QDate::toString(Qt::DateFormat format) const
\sa fromString(), QDateTime::toString(), QTime::toString(), QLocale::toString()
*/
-QString QDate::toString(QStringView format) const
-{
- return toString(format, QCalendar());
-}
-
QString QDate::toString(QStringView format, QCalendar cal) const
{
return QLocale::c().toString(*this, format, cal);
}
#if QT_STRINGVIEW_LEVEL < 2
-QString QDate::toString(const QString &format) const
-{
- return toString(qToStringViewIgnoringNull(format), QCalendar());
-}
-
QString QDate::toString(const QString &format, QCalendar cal) const
{
return toString(qToStringViewIgnoringNull(format), cal);
@@ -1518,6 +1506,8 @@ QDate QDate::fromString(const QString &string, Qt::DateFormat format)
}
/*!
+ \fn QDate QDate::fromString(const QString &string, const QString &format, QCalendar cal)
+
Returns the QDate represented by the \a string, using the \a
format given, or an invalid date if the string cannot be parsed.
@@ -1599,15 +1589,6 @@ QDate QDate::fromString(const QString &string, const QString &format, QCalendar
#endif
return date;
}
-
-/*!
- \overload
-*/
-
-QDate QDate::fromString(const QString &string, const QString &format)
-{
- return fromString(string, format, QCalendar());
-}
#endif // datestring
/*!
@@ -3935,7 +3916,6 @@ void QDateTime::setSecsSinceEpoch(qint64 secs)
\sa fromString(), QDate::toString(), QTime::toString(),
QLocale::toString()
*/
-
QString QDateTime::toString(Qt::DateFormat format) const
{
QString buf;
@@ -3943,11 +3923,10 @@ QString QDateTime::toString(Qt::DateFormat format) const
return buf;
switch (format) {
- case Qt::RFC2822Date: {
+ case Qt::RFC2822Date:
buf = QLocale::c().toString(*this, u"dd MMM yyyy hh:mm:ss ");
buf += toOffsetString(Qt::TextDate, offsetFromUtc());
return buf;
- }
default:
case Qt::TextDate: {
const QPair<QDate, QTime> p = getDateTime(d);
@@ -3997,9 +3976,7 @@ QString QDateTime::toString(Qt::DateFormat format) const
}
/*!
- \fn QString QDateTime::toString(const QString &format) const
\fn QString QDateTime::toString(const QString &format, QCalendar cal) const
- \fn QString QDateTime::toString(QStringView format) const
\fn QString QDateTime::toString(QStringView format, QCalendar cal) const
Returns the datetime as a string. The \a format parameter determines the
@@ -4039,28 +4016,17 @@ QString QDateTime::toString(Qt::DateFormat format) const
\sa fromString(), QDate::toString(), QTime::toString(), QLocale::toString()
*/
-QString QDateTime::toString(QStringView format) const
-{
- return toString(format, QCalendar());
-}
-
QString QDateTime::toString(QStringView format, QCalendar cal) const
{
return QLocale::c().toString(*this, format, cal);
}
-#if QT_STRINGVIEW_LEVEL < 2
-QString QDateTime::toString(const QString &format) const
-{
- return toString(qToStringViewIgnoringNull(format), QCalendar());
-}
-
+# if QT_STRINGVIEW_LEVEL < 2
QString QDateTime::toString(const QString &format, QCalendar cal) const
{
return toString(qToStringViewIgnoringNull(format), cal);
}
-#endif
-
+# endif
#endif // datestring
static inline void massageAdjustedDateTime(const QDateTimeData &d, QDate *date, QTime *time)
@@ -4595,27 +4561,6 @@ qint64 QDateTime::currentSecsSinceEpoch() noexcept
#endif
/*!
- \since 4.7
-
- Returns a datetime whose date and time are the number of milliseconds, \a msecs,
- that have passed since 1970-01-01T00:00:00.000, Coordinated Universal
- Time (Qt::UTC), and converted to Qt::LocalTime. On systems that do not
- support time zones, the time will be set as if local time were Qt::UTC.
-
- Note that there are possible values for \a msecs that lie outside the valid
- range of QDateTime, both negative and positive. The behavior of this
- function is undefined for those values.
-
- \sa toMSecsSinceEpoch(), setMSecsSinceEpoch()
-*/
-QDateTime QDateTime::fromMSecsSinceEpoch(qint64 msecs)
-{
- return fromMSecsSinceEpoch(msecs, Qt::LocalTime);
-}
-
-/*!
- \since 5.2
-
Returns a datetime whose date and time are the number of milliseconds \a msecs
that have passed since 1970-01-01T00:00:00.000, Coordinated Universal
Time (Qt::UTC) and converted to the given \a spec.
@@ -4989,15 +4934,6 @@ QDateTime QDateTime::fromString(const QString &string, const QString &format, QC
return QDateTime();
}
-/*
- \overload
-*/
-
-QDateTime QDateTime::fromString(const QString &string, const QString &format)
-{
- return fromString(string, format, QCalendar());
-}
-
#endif // datestring
/*!
\fn QDateTime QDateTime::toLocalTime() const
diff --git a/src/corelib/time/qdatetime.h b/src/corelib/time/qdatetime.h
index 52231e876e..5a8e1aecd8 100644
--- a/src/corelib/time/qdatetime.h
+++ b/src/corelib/time/qdatetime.h
@@ -44,6 +44,7 @@
#include <QtCore/qstring.h>
#include <QtCore/qnamespace.h>
#include <QtCore/qshareddata.h>
+#include <QtCore/qcalendar.h>
#include <limits>
@@ -54,7 +55,6 @@ Q_FORWARD_DECLARE_OBJC_CLASS(NSDate);
QT_BEGIN_NAMESPACE
-class QCalendar;
class QTimeZone;
class QDateTime;
@@ -69,6 +69,7 @@ public:
Q_DECL_CONSTEXPR bool isNull() const { return !isValid(); }
Q_DECL_CONSTEXPR bool isValid() const { return jd >= minJd() && jd <= maxJd(); }
+ // Gregorian-optimized:
int year() const;
int month() const;
int day() const;
@@ -76,7 +77,7 @@ public:
int dayOfYear() const;
int daysInMonth() const;
int daysInYear() const;
- int weekNumber(int *yearNum = nullptr) const;
+ int weekNumber(int *yearNum = nullptr) const; // ISO 8601, always Gregorian
int year(QCalendar cal) const;
int month(QCalendar cal) const;
@@ -95,21 +96,18 @@ public:
#if QT_CONFIG(datestring)
QString toString(Qt::DateFormat format = Qt::TextDate) const;
-
-#if QT_STRINGVIEW_LEVEL < 2
- QString toString(const QString &format) const;
- QString toString(const QString &format, QCalendar cal) const;
-#endif
-
- QString toString(QStringView format) const;
- QString toString(QStringView format, QCalendar cal) const;
+# if QT_STRINGVIEW_LEVEL < 2
+ QString toString(const QString &format, QCalendar cal = QCalendar()) const;
+# endif
+ QString toString(QStringView format, QCalendar cal = QCalendar()) const;
#endif
- bool setDate(int year, int month, int day);
+ bool setDate(int year, int month, int day); // Gregorian-optimized
bool setDate(int year, int month, int day, QCalendar cal);
void getDate(int *year, int *month, int *day) const;
Q_REQUIRED_RESULT QDate addDays(qint64 days) const;
+ // Gregorian-optimized:
Q_REQUIRED_RESULT QDate addMonths(int months) const;
Q_REQUIRED_RESULT QDate addYears(int years) const;
Q_REQUIRED_RESULT QDate addMonths(int months, QCalendar cal) const;
@@ -125,9 +123,12 @@ public:
static QDate currentDate();
#if QT_CONFIG(datestring)
+ static QDate fromString(QStringView s, Qt::DateFormat f = Qt::TextDate);
+ static QDate fromString(QStringView s, QStringView format, QCalendar cal = QCalendar());
+# if QT_STRINGVIEW_LEVEL < 2
static QDate fromString(const QString &s, Qt::DateFormat f = Qt::TextDate);
- static QDate fromString(const QString &s, const QString &format);
- static QDate fromString(const QString &s, const QString &format, QCalendar cal);
+ static QDate fromString(const QString &s, const QString &format, QCalendar cal = QCalendar());
+# endif
#endif
static bool isValid(int y, int m, int d);
static bool isLeapYear(int year);
@@ -299,12 +300,10 @@ public:
#if QT_CONFIG(datestring)
QString toString(Qt::DateFormat format = Qt::TextDate) const;
-#if QT_STRINGVIEW_LEVEL < 2
- QString toString(const QString &format) const;
- QString toString(const QString &format, QCalendar cal) const;
-#endif
- QString toString(QStringView format) const;
- QString toString(QStringView format, QCalendar cal) const;
+# if QT_STRINGVIEW_LEVEL < 2
+ QString toString(const QString &format, QCalendar cal = QCalendar()) const;
+# endif
+ QString toString(QStringView format, QCalendar cal = QCalendar()) const;
#endif
Q_REQUIRED_RESULT QDateTime addDays(qint64 days) const;
Q_REQUIRED_RESULT QDateTime addMonths(int months) const;
@@ -335,14 +334,14 @@ public:
static QDateTime currentDateTimeUtc();
#if QT_CONFIG(datestring)
static QDateTime fromString(const QString &s, Qt::DateFormat f = Qt::TextDate);
- static QDateTime fromString(const QString &s, const QString &format);
- static QDateTime fromString(const QString &s, const QString &format, QCalendar cal);
+ static QDateTime fromString(const QString &s, const QString &format,
+ QCalendar cal = QCalendar());
#endif
- static QDateTime fromMSecsSinceEpoch(qint64 msecs);
- // ### Qt 6: Merge with above with default spec = Qt::LocalTime
- static QDateTime fromMSecsSinceEpoch(qint64 msecs, Qt::TimeSpec spec, int offsetFromUtc = 0);
- static QDateTime fromSecsSinceEpoch(qint64 secs, Qt::TimeSpec spe = Qt::LocalTime, int offsetFromUtc = 0);
+ static QDateTime fromMSecsSinceEpoch(qint64 msecs, Qt::TimeSpec spec = Qt::LocalTime,
+ int offsetFromUtc = 0);
+ static QDateTime fromSecsSinceEpoch(qint64 secs, Qt::TimeSpec spe = Qt::LocalTime,
+ int offsetFromUtc = 0);
#if QT_CONFIG(timezone)
static QDateTime fromMSecsSinceEpoch(qint64 msecs, const QTimeZone &timeZone);