QDateTime Class
QDateTime 클래스는 날짜 및 시간 함수를 제공합니다. 더 보기...
Header: | #include <QDateTime> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- 상속된 멤버를 포함한 모든 멤버 목록
- QDateTime은 암시적으로 공유되는 클래스의 일부입니다.
이 클래스는 비교가 약합니다.
참고: 이 클래스의 모든 함수는 재인용됩니다.
공용 유형
(since 6.7) enum class | TransitionResolution { Reject, RelativeToBefore, RelativeToAfter, PreferBefore, PreferAfter, …, LegacyBehavior } |
enum class | YearRange { First, Last } |
공용 함수
QDateTime() | |
(until 6.9) | QDateTime(QDate date, QTime time, Qt::TimeSpec spec, int offsetSeconds = 0) |
QDateTime(QDate date, QTime time, const QTimeZone &timeZone, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior) | |
(since 6.5) | QDateTime(QDate date, QTime time, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior) |
QDateTime(const QDateTime &other) | |
QDateTime(QDateTime &&other) | |
~QDateTime() | |
QDateTime | addDays(qint64 ndays) const |
(since 6.4) QDateTime | addDuration(std::chrono::milliseconds msecs) const |
QDateTime | addMSecs(qint64 msecs) const |
QDateTime | addMonths(int nmonths) const |
QDateTime | addSecs(qint64 s) const |
QDateTime | addYears(int nyears) const |
QDate | date() const |
qint64 | daysTo(const QDateTime &other) const |
bool | isDaylightTime() const |
bool | isNull() const |
bool | isValid() const |
qint64 | msecsTo(const QDateTime &other) const |
int | offsetFromUtc() const |
qint64 | secsTo(const QDateTime &other) const |
void | setDate(QDate date, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior) |
void | setMSecsSinceEpoch(qint64 msecs) |
(until 6.9) void | setOffsetFromUtc(int offsetSeconds) |
void | setSecsSinceEpoch(qint64 secs) |
void | setTime(QTime time, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior) |
(until 6.9) void | setTimeSpec(Qt::TimeSpec spec) |
void | setTimeZone(const QTimeZone &toZone, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior) |
void | swap(QDateTime &other) |
QTime | time() const |
(since 6.5) QTimeZone | timeRepresentation() const |
Qt::TimeSpec | timeSpec() const |
QTimeZone | timeZone() const |
QString | timeZoneAbbreviation() const |
CFDateRef | toCFDate() const |
QDateTime | toLocalTime() const |
qint64 | toMSecsSinceEpoch() const |
NSDate * | toNSDate() const |
QDateTime | toOffsetFromUtc(int offsetSeconds) const |
qint64 | toSecsSinceEpoch() const |
(since 6.4) std::chrono::sys_time<std::chrono::milliseconds> | toStdSysMilliseconds() const |
(since 6.4) std::chrono::sys_seconds | toStdSysSeconds() const |
QString | toString(QStringView format, QCalendar cal) const |
QString | toString(const QString &format, QCalendar cal) const |
QString | toString(QStringView format) const |
QString | toString(Qt::DateFormat format = Qt::TextDate) const |
QString | toString(const QString &format) const |
(until 6.9) QDateTime | toTimeSpec(Qt::TimeSpec spec) const |
QDateTime | toTimeZone(const QTimeZone &timeZone) const |
QDateTime | toUTC() const |
(since 6.4) QDateTime & | operator+=(std::chrono::milliseconds duration) |
(since 6.4) QDateTime & | operator-=(std::chrono::milliseconds duration) |
QDateTime & | operator=(const QDateTime &other) |
정적 공용 멤버
(since 6.5) QDateTime | currentDateTime(const QTimeZone &zone) |
QDateTime | currentDateTime() |
QDateTime | currentDateTimeUtc() |
qint64 | currentMSecsSinceEpoch() |
qint64 | currentSecsSinceEpoch() |
QDateTime | fromCFDate(CFDateRef date) |
QDateTime | fromMSecsSinceEpoch(qint64 msecs, const QTimeZone &timeZone) |
QDateTime | fromMSecsSinceEpoch(qint64 msecs) |
(until 6.9) QDateTime | fromMSecsSinceEpoch(qint64 msecs, Qt::TimeSpec spec, int offsetSeconds = 0) |
QDateTime | fromNSDate(const NSDate *date) |
QDateTime | fromSecsSinceEpoch(qint64 secs, const QTimeZone &timeZone) |
QDateTime | fromSecsSinceEpoch(qint64 secs) |
(until 6.9) QDateTime | fromSecsSinceEpoch(qint64 secs, Qt::TimeSpec spec, int offsetSeconds = 0) |
(since 6.4) QDateTime | fromStdLocalTime(const std::chrono::local_time<std::chrono::milliseconds> &time) |
(since 6.4) QDateTime | fromStdTimePoint(const std::chrono::local_time<std::chrono::milliseconds> &time) |
(since 6.4) QDateTime | fromStdTimePoint(const std::chrono::time_point<Clock, Duration> &time) |
(since 6.4) QDateTime | fromStdTimePoint(std::chrono::time_point<std::chrono::system_clock, std::chrono::milliseconds> time) |
(since 6.4) QDateTime | fromStdZonedTime(const int &time) |
QDateTime | fromString(const QString &string, Qt::DateFormat format = Qt::TextDate) |
QDateTime | fromString(const QString &string, const QString &format, int baseYear, QCalendar cal) |
(since 6.0) QDateTime | fromString(QStringView string, Qt::DateFormat format = Qt::TextDate) |
(since 6.0) QDateTime | fromString(QStringView string, QStringView format, QCalendar cal) |
(since 6.7) QDateTime | fromString(QStringView string, QStringView format, int baseYear = QLocale::DefaultTwoDigitBaseYear) |
(since 6.0) QDateTime | fromString(const QString &string, QStringView format, QCalendar cal) |
(since 6.7) QDateTime | fromString(const QString &string, QStringView format, int baseYear = QLocale::DefaultTwoDigitBaseYear) |
QDateTime | fromString(const QString &string, const QString &format, QCalendar cal) |
(since 6.7) QDateTime | fromString(const QString &string, const QString &format, int baseYear = QLocale::DefaultTwoDigitBaseYear) |
(since 6.7) QDateTime | fromString(QStringView string, QStringView format, int baseYear, QCalendar cal) |
(since 6.0) QDateTime | fromString(const QString &string, QStringView format, int baseYear, QCalendar cal) |
관련 비회원
bool | operator!=(const QDateTime &lhs, const QDateTime &rhs) |
(since 6.4) QDateTime | operator+(const QDateTime &dateTime, std::chrono::milliseconds duration) |
(since 6.4) QDateTime | operator+(std::chrono::milliseconds duration, const QDateTime &dateTime) |
(since 6.4) std::chrono::milliseconds | operator-(const QDateTime &lhs, const QDateTime &rhs) |
(since 6.4) QDateTime | operator-(const QDateTime &dateTime, std::chrono::milliseconds duration) |
bool | operator<(const QDateTime &lhs, const QDateTime &rhs) |
QDataStream & | operator<<(QDataStream &out, const QDateTime &dateTime) |
bool | operator<=(const QDateTime &lhs, const QDateTime &rhs) |
bool | operator==(const QDateTime &lhs, const QDateTime &rhs) |
bool | operator>(const QDateTime &lhs, const QDateTime &rhs) |
bool | operator>=(const QDateTime &lhs, const QDateTime &rhs) |
QDataStream & | operator>>(QDataStream &in, QDateTime &dateTime) |
상세 설명
QDateTime 객체는 시간 표현에 따라 달력 날짜와 시계 시간("날짜 시간")을 인코딩합니다. 이 객체는 QDate 및 QTime 클래스의 기능을 결합합니다. 시스템 시계에서 현재 날짜 시간을 읽을 수 있습니다. 날짜 시간을 비교하고 초, 일, 월 또는 년 수를 추가하여 날짜 시간을 조작하는 함수를 제공합니다.
QDateTime은 local time, UTC, 지정된 offset from UTC 또는 지정된 time zone 에 대한 날짜 시간을 설명할 수 있습니다. 이러한 각 시간 표현은 QTimeZone 클래스의 적절한 인스턴스로 캡슐화할 수 있습니다. 예를 들어 시간대가 "유럽/베를린"인 경우 독일에서 사용되는 서머타임 규칙이 적용됩니다. 이와는 대조적으로 UTC에서 +3600초의 고정 오프셋은 UTC보다 1시간 앞선 시간대(일반적으로 ISO 표준 표기법에서는 "UTC+01:00"로 표기)이며, 서머타임과 관련된 복잡한 문제가 없습니다. 현지 시간 또는 지정된 시간대를 사용하는 경우 시간대 전환( below 참조 )이 고려됩니다. QDateTime의 timeSpec()은 네 가지 시간 표현 유형 중 어떤 것이 사용되고 있는지 알려주며, timeRepresentation()은 해당 시간 표현에 대한 전체 설명을 QTimeZone 로 제공합니다.
일반적으로 생성자에서 날짜와 시간을 명시적으로 지정하거나 currentDateTime() 또는 fromMSecsSinceEpoch()와 같은 정적 함수를 사용하여 QDateTime 객체를 생성합니다. setDate () 및 setTime()를 사용하여 날짜와 시간을 변경할 수 있습니다. 또한 setMSecsSinceEpoch() 함수를 사용하여 날짜/시간을 설정할 수도 있는데, 이 함수는 1970년 시작(UTC 기준) 이후의 시간(밀리초)을 반환합니다. fromString () 함수는 문자열과 문자열 내의 날짜를 해석하는 데 사용되는 날짜 형식이 주어지면 QDateTime을 반환합니다.
QDateTime::currentDateTime() 함수는 현지 시간(기본값)과 같은 특정 시간 표현과 관련하여 현재 날짜와 시간을 표현하는 QDateTime을 반환합니다. QDateTime::currentDateTimeUtc()는 UTC를 기준으로 현재 날짜와 시간을 표현하는 QDateTime을 반환하며, 이는 QDateTime::currentDateTime(QTimeZone::UTC)
와 동일합니다.
date() 및 time() 함수는 날짜 시간의 날짜 및 시간 부분에 대한 액세스를 제공합니다. toString () 함수는 동일한 정보를 텍스트 형식으로 제공합니다.
QDateTime은 전체 연산자 집합을 제공하여 두 개의 QDateTime 객체를 비교하는데, 여기서 작을수록 이전을 의미하고 클수록 이후를 의미합니다.
addMSecs()를 사용하여 주어진 밀리초 단위로 날짜 시간을 늘리거나 줄일 수 있고, addSecs()를 사용하여 초 단위로 늘리거나 addDays()를 사용하여 일 단위로 늘릴 수 있습니다. 마찬가지로 addMonths() 및 addYears()을 사용할 수 있습니다. daysTo () 함수는 두 날짜 시간 사이의 일 수를 반환하고, secsTo() 함수는 두 날짜 시간 사이의 초 수를 반환하며, msecsTo() 함수는 두 날짜 시간 사이의 밀리초 수를 반환합니다. 이러한 연산은 해당되는 경우 일광 절약 시간제(DST) 및 기타 시간대 전환을 인식합니다.
toTimeZone()를 사용하여 날짜 시간을 다른 시간 표현으로 다시 표현합니다. 현지 시간, UTC 또는 UTC로부터의 고정 오프셋을 나타내는 경량 QTimeZone 을 전달하여 해당 시간 표현을 사용하도록 날짜 시간을 변환하거나, 전체 시간대( timeSpec()가 Qt::TimeZone
)를 전달하여 대신 해당 시간대를 사용할 수 있습니다.
참고
참고: QDateTime은 윤초를 고려하지 않습니다.
참고: 문자열 형식과의 모든 변환은 C 로캘을 사용하여 수행됩니다. 현지화된 변환에 대해서는 QLocale 을 참조하세요.
참고: 그레고리력에는 연도 0이 없습니다. 해당 연도의 날짜는 유효하지 않은 것으로 간주됩니다. 연도 -1은 "그리스도 1년 전" 또는 "일반 시대 1년 전"입니다. 서기 1월 1일 이전은 기원전 12월 31일입니다.
참고: 현지 시간(기본값) 또는 지정된 시간대를 사용한다는 것은 transitions 에서 문제를 해결해야 함을 의미합니다. 따라서 이러한 QDateTime 인스턴스에 대한 작업(특히 구성 포함)은 UTC 또는 고정된 오프셋을 사용할 때보다 비용이 더 많이 들 수 있습니다.
유효한 날짜의 범위
QDateTime이 나타낼 수 있는 값의 범위는 내부 스토리지 구현에 따라 달라집니다. QDateTime은 현재 날짜와 시간을 인코딩하는 직렬 msec 값으로 qint64에 저장됩니다. 따라서 날짜 범위가 약 ±2억 9200만 년으로 제한되며, QDate 범위인 ±20억 년과 비교하면 약 ±2억 9200만 년으로 제한됩니다. 극단적인 값으로 QDateTime을 만들 때는 스토리지가 넘치지 않도록 주의해야 합니다. 지원되는 값의 정확한 범위는 사용되는 시간 표현에 따라 달라집니다.
시간대 사용
QDateTime은 시스템의 표준 시간대 정보를 사용하여 현재 현지 표준 시간대와 UTC와의 오프셋을 결정합니다. 시스템이 올바르게 구성되지 않았거나 최신 상태가 아닌 경우 QDateTime은 잘못된 결과를 제공합니다.
QDateTime도 마찬가지로 시스템에서 제공한 정보를 사용하여 UTC로부터 다른 시간대의 오프셋을 결정합니다. 이 정보가 불완전하거나 최신 정보가 아닌 경우 QDateTime은 잘못된 결과를 제공합니다. 자세한 내용은 QTimeZone 문서를 참조하세요.
최신 Unix 시스템에서는 QDateTime이 가능한 한 항상 과거 전환(DST 포함, 아래 참조)에 대한 정확한 정보를 가지고 있음을 의미합니다. 시스템이 과거 표준 시간대 데이터를 지원하지 않는 Windows에서는 특히 DST를 포함한 표준 시간대 전환과 관련하여 과거 정확도가 유지되지 않습니다. 그러나 ICU 라이브러리를 사용하여 Qt를 빌드하면 QTimeZone 에 유닉스에서 사용되는 것과 동일한 시간대 데이터베이스를 갖추게 됩니다.
시간대 전환
QDateTime은 표준시와 일광 절약 시간제(DST) 사이의 전환과 표준 오프셋이 변경될 때 발생하는 전환 모두 시간대 전환을 고려합니다. 예를 들어, 전환 시점이 오전 2시이고 시계가 오전 3시로 앞당겨진다면 02:00:00에서 02:59:59.999까지 "누락된" 시간이 발생합니다. 이러한 전환을 "스프링 포워드"라고 하며 건너뛴 시간은 의미가 없습니다. "폴백"으로 알려진 반대 방향으로 전환하는 경우, 시간 간격이 먼저 이전 시간대(보통 DST)에서 반복된 다음 새 시간대(보통 표준시)에서 반복되므로 이 간격의 시간은 모호합니다.
일부 지역에서는 여름에는 표준 시간을 사용하고 겨울에는 서머타임(오프셋이 낮게 설정된 시간)을 사용하는 "역방향" DST를 사용합니다. 이러한 지역의 경우 스프링 포워드는 여전히 봄에 한 시간을 건너뛰지만 서머타임에서 벗어나는 전환이며, 폴백은 여전히 가을에 한 시간을 반복하지만 서머타임으로 전환하는 것입니다.
UTC 시간(또는 UTC와 고정 오프셋된 시간)에서 변환할 때는 어떤 시간대에서도 항상 명확한 유효한 결과가 있습니다. 그러나 날짜와 시간을 결합하여 현지 시간 또는 특정 시간대를 기준으로 표시되는 날짜 시간을 만들 때 명목상 결과가 전환되어 유효하지 않거나 모호해질 수 있습니다. 이러한 상황이 발생할 수 있는 메서드에는 resolve
매개변수가 사용됩니다. 요청된 날짜/시간이 유효하고 모호하지 않은 경우 이 매개변수는 항상 무시됩니다. 제어할 수 있는 옵션은 TransitionResolution 을 참조하세요. Qt 6.7 이전에는 LegacyBehavior 이 선택되었습니다.
스프링 포워드의 건너뛴 간격의 경우, 요청된 시간을 두 오프셋 중 하나로 해석하면 다른 오프셋이 사용 중인 실제 시간이 나오므로 TransitionResolution::RelativeToBefore
을 resolve
으로 전달하면 실제로는 전환이 일어나지 않았다면 요청된 표현을 사용했을 전환 이후의 시간이 됩니다. 마찬가지로 resolve
에 TransitionResolution::RelativeToAfter
을 전달하면 전환이 더 일찍 일어났더라면 요청된 표현이 있었을 전환 전의 시간이 됩니다.
addDay() 또는 addSecs()와 마찬가지로 QDateTime이 산술을 수행할 때 유효한 결과를 생성하기 위해 주의를 기울입니다. 예를 들어 02:00에서 03:00로 스프링 포워드가 있는 날에 01:59:59에 1초를 더하면 03:00:00이 됩니다. 이전 날 02:30에 하루를 더하면 전환 당일 03:30이 되고, 다음 날 02:30에 addDay(-1)
을 호출하여 하루를 빼면 전환 당일 01:30이 됩니다. addSecs ()는 주어진 시간(초)만큼 오프셋된 시간을 전달하지만 addDays()은 날짜를 조정하고 잘못된 결과를 가져오는 경우에만 시간을 조정합니다. addDays(1)
을 스프링 포워드 전날 03:00에 적용하면 후자가 전자의 23시간 후임에도 불구하고 전환 당일 03:00이 되지만 addSecs(24 * 60 * 60)
은 24시간이 지난 후이므로 전환 당일 04:00이 됩니다. 일반적인 전환에서는 어떤 날은 23시간 또는 25시간이 걸립니다.
time_t
시스템에서 표현할 수 있는 날짜 시간(32비트 시스템에서 1901-12-14부터 2038-01-18까지 time_t
, 유형이 64비트인 경우 QDateTime이 표현할 수 있는 전체 범위)의 경우 표준 시스템 API를 사용하여 UTC에서 현지 시간의 오프셋을 결정합니다. 이러한 시스템 API로 처리되지 않는 날짜 시간( time_t
범위 내의 일부 포함)의 경우 사용 가능한 경우 QTimeZone::systemTimeZone()을 사용하거나 최선의 노력을 다해 추정합니다. 어떤 경우든 사용된 오프셋 정보는 시스템에 따라 다르며 불완전하거나 과거 시간의 경우 역사적으로 부정확할 수 있습니다. 또한 향후 날짜의 경우 해당 날짜가 도래하기 전에 현지 시간대의 오프셋 및 DST 규칙이 변경될 수 있습니다.
하루 종일 전환
소수의 지역에서는 국제 날짜 변경의 일환으로 하루를 건너뛰거나 하루 전체를 반복하는 경우가 있습니다. 이러한 경우 daysTo()는 단순히 달력 날짜의 차이를 사용하여 중복 또는 간격을 인식하지 못하지만, msecsTo()와 secsTo()는 실제 시간 간격을 알고 있습니다. 마찬가지로 addMSecs() 및 addSecs()는 경과 시간에 직접적으로 대응하며, addDays(), addMonths() 및 addYears()는 중복 또는 누락으로 인한 모호함이나 무효를 해결해야 하는 경우를 제외하고는 명목 달력을 따릅니다.
참고: 율리우스력에서 그레고리력으로 달력을 변경하는 동안 "손실된" 날짜는 QDateTime에 영향을 미치지 않습니다. 두 달력은 날짜를 다르게 설명하지만, 변경에 따른 연속되는 날은 달력 또는 해당 toJulianDay() 값에 의해 설명된 대로 각각 이전보다 하루 늦은 연속된 QDate 인스턴스로 설명됩니다. 반대로 하루를 건너뛰거나 복제하는 영역은 날짜가 아닌 시간에 대한 설명을 변경하는 것이므로 전체 24시간이 변경됩니다.
UTC로부터의 오프셋
UTC로부터의 오프셋은 그리니치 동쪽에서 초 단위로 측정됩니다. 특정 날짜의 정오와 같이 특정 날짜와 시간으로 설명되는 순간은 사용된 시간 표현에 따라 달라집니다. UTC로부터 오프셋이 큰 것은 날짜 및 시간의 조합에 따라 더 이른 순간을, 오프셋이 작은 것은 더 늦은 순간을 설명합니다.
UTC로부터의 오프셋에 대한 명시적인 크기 제한은 없지만 ±hh:mm 형식을 사용하는 toString() 및 fromString() 메서드를 사용할 때는 암시적인 제한이 적용되어 사실상 범위가 ±99시간 59분 및 전체 분으로만 제한됩니다. 현재 ±14시간 범위를 벗어나는 오프셋이 있는 시간대는 없으며, 알려진 모든 오프셋은 5분의 배수입니다. 과거 시간대는 범위가 더 넓고 초를 포함한 오프셋이 있을 수 있으며, 이러한 마지막 오프셋은 문자열로 충실하게 표현할 수 없습니다.
QDate, QTime, QDateTimeEdit, QTimeZone 을참조하세요 .
회원 유형 문서
[since 6.7]
enum class QDateTime::TransitionResolution
이 열거형은 Timezone transitions 에 해당하는 날짜/시간 조합을 해결하는 데 사용됩니다.
현지 시간 또는 서머타임이 적용되는 시간대로 지정된 날짜 시간을 구성하거나 setDate(), setTime() 또는 setTimeZone()로 수정할 때 주어진 매개 변수는 해당 시간대에 의미가 없거나 두 가지 의미를 갖는 시간 표현을 암시할 수 있습니다. 이러한 시간 표현을 전환 중이라고 설명합니다. 두 경우 모두 잘못된 날짜/시간을 반환하여 연산이 잘못 정의되었음을 나타낼 수 있습니다. 모호한 경우에는 의미 있는 두 시간 중 하나를 선택할 수 있습니다. 의미가 없는 경우, 그럴듯한 의미가 있을 수 있는 양쪽 시간 중 하나를 선택할 수 있습니다. 예를 들어, 이전 시간에서 전진할 때 전환 후의 시간을 문제의 이전 시간에서 실제로 지정된 시간만큼의 시간으로 선택할 수 있습니다. 여기에 지정된 옵션은 이러한 선택이 수행되는 방식을 구성합니다.
상수 | 값 | 설명 |
---|---|---|
QDateTime::TransitionResolution::Reject | 0 | 전환의 모든 시간을 유효하지 않은 것으로 처리합니다. 실제로 유효하거나 모호합니다. |
QDateTime::TransitionResolution::RelativeToBefore | 1 | 전환 전의 시간에서 앞으로 나아가는 것처럼 시간을 선택합니다. 그러면 전환 전에 적용된 오프셋을 사용하여 요청된 시간을 해석하고 필요한 경우 결과를 결과 시간에 적용된 오프셋으로 변환합니다. |
QDateTime::TransitionResolution::RelativeToAfter | 2 | 전환 후의 시간에서 뒤로 물러나는 것처럼 시간을 선택합니다. 그러면 전환 후 적용되는 오프셋을 사용하여 요청된 시간을 해석하고 필요한 경우 결과를 결과 시간에 적용되는 오프셋으로 변환합니다. |
QDateTime::TransitionResolution::PreferBefore | 3 | 전환 전 시간을 선택합니다, |
QDateTime::TransitionResolution::PreferAfter | 4 | 전환 후 시간을 선택합니다. |
QDateTime::TransitionResolution::PreferStandard | 5 | 전환의 표준 시간 쪽의 시간을 선택합니다. |
QDateTime::TransitionResolution::PreferDaylightSaving | 6 | 전환의 서머타임 쪽 시간을 선택합니다. |
QDateTime::TransitionResolution::LegacyBehavior | RelativeToBefore | TransitionResolution 파라미터의 기본값으로 사용되는 RelativeToBefore의 별칭으로, Qt 6.7 이전 동작과 가장 유사합니다. |
addDays(), addMonths() 또는 addYears()의 경우, 양수 조정을 추가하는 경우 RelativeToBefore
, 음수 조정을 추가하는 경우 RelativeToAfter
를 사용하는 것이 (대부분) 동작입니다.
참고: 여름철에 서머타임이 UTC와의 오프셋을 증가시키는 시간대("양수 DST"라고 함)에서는 RelativeToAfter의 별칭으로 PreferStandard를, RelativeToBefore의 별칭으로 PreferDaylightSaving을 사용합니다. 서머타임제 메커니즘이 겨울철에 UTC로부터 오프셋이 감소하는 시간대("음의 DST"라고 함)에서는 대부분의 플랫폼에서와 마찬가지로 운영 체제에서 날짜가 DST인지 표준 시간인지 보고하는 경우 그 반대가 적용됩니다. Qt::TimeZone 날짜 시간에서도 전환 시간을 사용할 수 없는 일부 플랫폼의 경우 QTimeZone 은 UTC에서 오프셋이 낮은 쪽을 표준 시간으로 간주하여 사실상 양수 DST를 가정합니다.
다음 표는 현지 시각이 02:00과 03:00 사이에 전환이 있는 날의 02:30에 대한 요청을 QDateTime 생성자가 어떻게 해결하는지, 양쪽에 공칭 표준 시간 LST와 서머타임 LDT가 있는 다양한 경우에 대해 설명합니다. 전환 유형은 한 시간을 건너뛰거나 반복할 수 있습니다. 전환 유형과 매개변수 resolve
의 값에 따라 주어진 날짜의 실제 시간이 선택됩니다. 첫째, 양수 일광 절약제의 일반적인 경우입니다:
이전 | 02:00-03:00 | After | resolve | 선택된 |
---|---|---|---|---|
LST | 건너뛰기 | LDT | RelativeToBefore | 03:30 LDT |
LST | skip | LDT | RelativeToAfter | 01:30 LST |
LST | skip | LDT | PreferBefore | 01:30 LST |
LST | skip | LDT | PreferAfter | 03:30 LDT |
LST | skip | LDT | PreferStandard | 01:30 LST |
LST | skip | LDT | PreferDaylightSaving | 03:30 LDT |
LDT | 반복 | LST | RelativeToBefore | 02:30 LDT |
LDT | 반복 | LST | RelativeToAfter | 02:30 LST |
LDT | 반복 | LST | PreferBefore | 02:30 LDT |
LDT | 반복 | LST | PreferAfter | 02:30 LST |
LDT | 반복 | LST | PreferStandard | 02:30 LST |
LDT | 반복 | LST | PreferDaylightSaving | 02:30 LDT |
둘째, 음의 일광 절약제를 사용하는 경우, 겨울에는 LDT를 사용하고 여름에는 한 시간을 건너뛰고 LST로 전환한 다음 다시 겨울로 전환할 때 한 시간을 반복하는 경우입니다:
LDT | 건너뛰기 | LST | RelativeToBefore | 03:30 LST |
LDT | skip | LST | RelativeToAfter | 01:30 LDT |
LDT | skip | LST | PreferBefore | 01:30 LDT |
LDT | skip | LST | PreferAfter | 03:30 LST |
LDT | skip | LST | PreferStandard | 03:30 LST |
LDT | skip | LST | PreferDaylightSaving | 01:30 LDT |
LST | 반복 | LDT | RelativeToBefore | 02:30 LST |
LST | 반복 | LDT | RelativeToAfter | 02:30 LDT |
LST | 반복 | LDT | PreferBefore | 02:30 LST |
LST | 반복 | LDT | PreferAfter | 02:30 LDT |
LST | 반복 | LDT | PreferStandard | 02:30 LST |
LST | 반복 | LDT | PreferDaylightSaving | 02:30 LDT |
Reject를 사용하면 관련 QDateTime API가 잘못된 날짜 시간 객체를 반환하도록 유도하여 코드가 스스로 전환을 처리할 수 있도록 할 수 있습니다(예: 사용자가 선택한 날짜 시간이 전환 간격에 있다는 사실을 알려 충돌이나 모호함을 해결할 기회를 제공하는 등). 이를 사용하는 코드는 자체(또는 사용자의) 해결에 사용할 관련 정보를 결정하는 데 위의 다른 옵션이 유용할 수 있습니다. 전환의 시작 또는 종료 또는 전환 자체의 순간이 올바른 해결 방법인 경우 QTimeZone 의 전환 API를 사용하여 해당 정보를 얻을 수 있습니다. secsTo ()를 사용하여 이전 날과 다음 날의 정오 사이의 실제 시간을 측정하여 전환이 반복되는 간격인지 건너뛴 간격인지 확인할 수 있습니다. 결과는 건너뛴 간격(예: 스프링 포워드)의 경우 48시간 미만이 되고 반복 간격(예: 폴백)의 경우 48시간 이상이 됩니다.
참고: 거부 이외의 해결 방법을 지정하면 가능한 경우 유효한 QDateTime 객체가 반환됩니다. 요청된 날짜와 시간이 간격이 있는 경우 반환된 날짜와 시간에는 요청된 time() 또는 경우에 따라 하루를 건너뛴 경우 date()가 포함되지 않습니다. 따라서 date()와 time()를 요청된 것과 비교하여 공백이 발생하는 시기를 감지할 수 있습니다.
다른 날짜 시간 소프트웨어와의 관계
Python 프로그래밍 언어의 날짜 시간 API에는 RelativeToBefore
(fold = True
) 및 RelativeToAfter
(fold = False
)에 해당하는 fold
매개변수가 있습니다.
JavaScript의 Date
을 대체하는 Temporal
제안은 disambiguation
매개변수의 값으로 전환을 해결하는 방법에 대한 네 가지 옵션을 제공합니다. 'reject'
은 예외를 발생시키는데, 이는 대략 Reject
이 잘못된 결과를 생성하는 것에 해당합니다. 'earlier'
및 'later'
옵션은 PreferBefore
및 PreferAfter
에 해당합니다. 'compatible'
옵션은 RelativeToBefore
(및 파이썬의 fold = True
)에 해당합니다.
이 열거형은 Qt 6.7에 도입되었습니다.
Timezone transitions 및 QDateTime::TransitionResolution도 참조하십시오 .
enum class QDateTime::YearRange
이 열거형 유형은 QDateTime 으로 표현할 수 있는 연도 범위(그레고리력 기준)를 설명합니다:
상수 | 값 | 설명 |
---|---|---|
QDateTime::YearRange::First | -292275056 | 올해의 후반부를 나타낼 수 있습니다. |
QDateTime::YearRange::Last | +292278994 | 올해의 이전 부분을 표현할 수 있습니다. |
이 두 연도 사이에 있는 모든 날짜도 표현할 수 있습니다. 그러나 그레고리력에는 0년이 없다는 점에 유의하세요.
멤버 함수 문서
QString QDateTime::toString(QStringView format, QCalendar cal) const
QString QDateTime::toString(const QString &format, QCalendar cal) const
날짜/시간을 문자열로 반환합니다. format 매개변수는 결과 문자열의 형식을 결정합니다. cal 을 제공하면 날짜를 나타내는 데 사용되는 달력이 결정되며, 기본값은 그레고리력입니다. Qt 5.14 이전에는 cal 매개 변수가 없었으며 항상 그레고리력이 사용되었습니다. format 매개변수에서 시간 및 날짜에 대해 각각 지원되는 지정자는 QTime::toString() 및 QDate::toString()를 참조하세요.
작은따옴표로 묶인 모든 문자 시퀀스는 서식 지정 문자가 포함되어 있더라도 출력 문자열에 따옴표가 제거된 그대로 포함됩니다. 연속된 작은따옴표("''") 두 개는 출력에서 작은따옴표로 대체됩니다. 서식 문자열의 다른 모든 문자는 출력 문자열에 그대로 포함됩니다.
구분 기호가 없는 형식(예: "ddMM")은 지원되지만 결과 문자열을 항상 안정적으로 읽을 수 있는 것은 아니므로 주의해서 사용해야 합니다(예: "dM"이 "212"를 생성하면 12월 2일 또는 2월 21일을 의미할 수 있음).
형식 문자열 예시( QDateTime 는 2001년 5월 21일 14:13:09.120이라고 가정):
Format | 결과 |
---|---|
dd.MM.yyyy | 21.05.2001 |
ddd MMMM d yy | 화요일 5월 21일 01 |
hh:mm:ss.zzz | 14:13:09.120 |
hh:mm:ss.z | 14:13:09.12 |
H:M:S AP | 2:13:9 오후 |
날짜/시간이 유효하지 않은 경우 빈 문자열이 반환됩니다.
참고: 요일 및 월 이름과 오전/오후 표시기는 영어(C 로캘)로 제공됩니다. 현지화된 월 및 일 이름과 현지화된 형태의 오전/오후를 가져오려면 QLocale::system().toDateTime()을 사용합니다.
fromString(), QDate::toString(), QTime::toString() 및 QLocale::toString()도 참조하세요 .
[noexcept]
QDateTime::QDateTime()
명목상 현지 시간을 사용하여 null 날짜/시간을 생성합니다.
날짜와 시간이 유효하지 않으므로 null 날짜/시간은 유효하지 않습니다.
isValid(), setMSecsSinceEpoch(), setDate(), setTime() 및 setTimeZone()도 참조하세요 .
[until 6.9]
QDateTime::QDateTime(QDate date, QTime time, Qt::TimeSpec spec, int offsetSeconds = 0)
이 기능은 버전 6.9에서 더 이상 사용되지 않을 예정입니다.
QDateTime(date, time)
또는 QDateTime(date, time, QTimeZone::fromSecondsAheadOfUtc(offsetSeconds))
을 사용합니다.
spec 및 offsetSeconds 초가 암시하는 시간 표현을 사용하여 주어진 date 및 time 으로 날짜 시간을 구성합니다.
date 가 유효하고 time 가 유효하지 않은 경우 시간은 자정으로 설정됩니다.
spec 가 Qt::OffsetFromUTC 이 아닌 경우 offsetSeconds 는 무시됩니다. spec 가 Qt::OffsetFromUTC 이고 offsetSeconds 가 0 인 경우 timeSpec()는 Qt::UTC 로 설정됩니다(즉, 오프셋 0 초).
spec 가 Qt::TimeZone 인 경우 사양은 Qt::LocalTime, 즉 현재 시스템 표준 시간대로 설정됩니다. Qt::TimeZone 날짜 시간을 생성하려면 올바른 생성자를 사용합니다.
date 이 QDateTime으로 표현할 수 있는 날짜 범위를 벗어나면 결과가 유효하지 않습니다. spec 이 Qt::LocalTime 이고 시스템의 표준 시간대가 지정된 날짜와 시간을 건너뛴 경우 결과는 유효하지 않습니다.
QDateTime::QDateTime(QDate date, QTime time, const QTimeZone &timeZone, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior)
timeZone 에 설명된 시간 표현을 사용하여 주어진 date 및 time 으로 날짜 시간을 구성합니다.
date 가 유효하고 time 가 유효하지 않으면 시간은 자정으로 설정됩니다. timeZone 이 유효하지 않으면 날짜/시간이 유효하지 않습니다. date 와 time 이 timeZone 에 대한 전환에 가까운 순간을 설명하는 경우 resolve 이 해당 상황의 해결 방법을 제어합니다.
참고: Qt 6.7 이전 버전에서는 이 함수에 resolve 매개변수가 없었기 때문에 전환과 관련된 모호성을 해결할 방법이 없었습니다.
[since 6.5]
QDateTime::QDateTime(QDate date, QTime time, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior)
이 함수는 오버로드된 함수입니다.
현지 시간을 사용하여 주어진 date 및 time 으로 날짜 시간을 만듭니다.
date 이 유효하고 time 이 유효하지 않은 경우 자정이 시간으로 사용됩니다. date 및 time 이 현지 시간으로 전환에 가까운 순간을 설명하는 경우 resolve 은 해당 상황이 해결되는 방법을 제어합니다.
참고: Qt 6.7 이전 버전에는 이 함수에 resolve 매개변수가 없었기 때문에 전환과 관련된 모호성을 해결할 방법이 없었습니다.
이 함수는 Qt 6.5에 도입되었습니다.
[noexcept]
QDateTime::QDateTime(const QDateTime &other)
other 날짜 시간의 복사본을 생성합니다.
[noexcept]
QDateTime::QDateTime(QDateTime &&other)
임시 other 날짜/시간의 콘텐츠를 이 객체로 이동하고 other 은 지정되지 않은(그러나 적절한) 상태로 유지합니다.
[noexcept]
QDateTime::~QDateTime()
날짜 시간을 삭제합니다.
QDateTime QDateTime::addDays(qint64 ndays) const
이 객체의 날짜 시간보다 며칠 늦은 ndays 날짜 시간을 포함하는 QDateTime 객체를 반환합니다( ndays 가 음수인 경우 이전).
timeSpec()가 Qt::LocalTime 또는 Qt::TimeZone 이고 결과 날짜와 시간이 표준시에서 서머타임으로 전환하는 시간에 해당하는 경우 결과는 이 간격 바로 너머의 변경 방향이 됩니다. 전환 시간이 오전 2시이고 시계가 오전 3시로 앞당겨지는 경우, 오전 2시와 오전 3시 사이를 조준한 결과는 오전 2시 이전( ndays < 0
)이거나 오전 3시 이후(그렇지 않은 경우)가 되도록 조정됩니다.
daysTo(), addMonths(), addYears(), addSecs() 및 Timezone transitions 를참조하세요 .
[since 6.4]
QDateTime QDateTime::addDuration(std::chrono::milliseconds msecs) const
이 객체의 날짜 시간보다 밀리초 늦은 msecs 날짜 시간이 포함된 QDateTime 객체를 반환합니다( msecs 가 음수인 경우 이보다 빠릅니다).
이 날짜/시간이 유효하지 않으면 유효하지 않은 날짜/시간이 반환됩니다.
참고: std::chrono::months
또는 std::chrono::years
으로 표현된 기간을 추가하면 addMonths() 또는 addYears()을 사용하여 얻은 것과 동일한 결과가 나오지 않습니다. 전자는 태양력을 기준으로 계산된 고정 기간이고, 후자는 그레고리력의 월/년 정의를 사용합니다.
이 함수는 Qt 6.4에 도입되었습니다.
addMSecs(), msecsTo(), addDays(), addMonths() 및 addYears()도 참조하세요 .
QDateTime QDateTime::addMSecs(qint64 msecs) const
이 객체의 날짜 시간보다 밀리초 늦은 msecs 날짜 시간이 포함된 QDateTime 객체를 반환합니다( msecs 가 음수인 경우 이보다 빠릅니다).
이 날짜/시간이 유효하지 않으면 유효하지 않은 날짜/시간이 반환됩니다.
addSecs(), msecsTo(), addDays(), addMonths() 및 addYears()도 참조하세요 .
QDateTime QDateTime::addMonths(int nmonths) const
이 객체의 날짜 시간보다 몇 달 늦은 nmonths 날짜 시간을 포함하는 QDateTime 객체를 반환합니다( nmonths 이 음수인 경우 이전).
timeSpec()가 Qt::LocalTime 또는 Qt::TimeZone 이고 결과 날짜와 시간이 표준시에서 서머타임으로 전환하는 시간에 해당하는 경우 결과는 이 간격 바로 너머의 변경 방향이 됩니다. 전환 시간이 오전 2시이고 시계가 오전 3시로 앞당겨지는 경우, 오전 2시와 오전 3시 사이를 조준한 결과는 오전 2시 이전( nmonths < 0
)이거나 오전 3시 이후(그렇지 않은 경우)가 되도록 조정됩니다.
daysTo(), addDays(), addYears(), addSecs() 및 Timezone transitions 를참조하세요 .
QDateTime QDateTime::addSecs(qint64 s) const
이 객체의 날짜 시간보다 s 초 늦은 날짜 시간( s 이 음수인 경우 그 이전)이 포함된 QDateTime 객체를 반환합니다.
이 날짜/시간이 유효하지 않으면 유효하지 않은 날짜/시간이 반환됩니다.
addMSecs(), secsTo(), addDays(), addMonths() 및 addYears()도 참조하세요 .
QDateTime QDateTime::addYears(int nyears) const
이 객체의 날짜 시간보다 몇 년 늦은 nyears 날짜 시간을 포함하는 QDateTime 객체를 반환합니다( nyears 가 음수인 경우 이전).
timeSpec()가 Qt::LocalTime 또는 Qt::TimeZone 이고 결과 날짜와 시간이 표준시에서 서머타임으로 전환하는 시간에 해당하는 경우 결과는 이 간격 바로 너머의 변경 방향이 됩니다. 전환 시간이 오전 2시이고 시계가 오전 3시로 앞당겨지는 경우, 오전 2시와 오전 3시 사이를 조준한 결과는 오전 2시 이전( nyears < 0
)이거나 오전 3시 이후(그렇지 않은 경우)가 되도록 조정됩니다.
daysTo(), addDays(), addMonths(), addSecs() 및 Timezone transitions 를참조하세요 .
[static, since 6.5]
QDateTime QDateTime::currentDateTime(const QTimeZone &zone)
zone 에 설명된 시간 표현을 사용하여 시스템 시계의 현재 날짜/시간을 반환합니다. zone 을 생략하면 현지 시간이 사용됩니다.
이 함수는 Qt 6.5에 도입되었습니다.
currentDateTimeUtc(), QDate::currentDate(), QTime::currentTime() 및 toTimeSpec()도 참조하십시오 .
[static]
QDateTime QDateTime::currentDateTime()
과부하가 걸린 기능입니다.
[static]
QDateTime QDateTime::currentDateTimeUtc()
시스템 시계의 현재 날짜 시간을 UTC로 표시하여 반환합니다.
currentDateTime(QTimeZone::UTC)
에 해당합니다.
currentDateTime(), QDate::currentDate(), QTime::currentTime() 및 toTimeSpec()도 참조하세요 .
[static noexcept]
qint64 QDateTime::currentMSecsSinceEpoch()
1970년 시작 이후 현재 밀리초(UTC 기준)를 반환합니다.
이 숫자는 POSIX time_t 변수와 비슷하지만 초 대신 밀리초로 표시됩니다.
currentDateTime(), currentDateTimeUtc() 및 toTimeSpec()도 참조하세요 .
[static noexcept]
qint64 QDateTime::currentSecsSinceEpoch()
1970년 시작 이후의 시간(초, UTC 기준)을 반환합니다.
이 숫자는 POSIX time_t 변수와 같습니다.
currentMSecsSinceEpoch()도 참조하세요 .
QDate QDateTime::date() const
날짜/시간의 날짜 부분을 반환합니다.
setDate(), time() 및 timeRepresentation()도 참조하세요 .
qint64 QDateTime::daysTo(const QDateTime &other) const
이 날짜 시간에서 other 날짜 시간까지의 일 수를 반환합니다. 이 날짜 시간에서 other 날짜 시간 사이에 자정에 도달한 횟수만큼 일수가 계산됩니다. 즉, 23:55부터 다음 날 0:05까지 10분 차이가 나면 하루로 계산됩니다.
other 날짜 시간이 이 날짜 시간보다 빠르면 반환되는 값은 음수입니다.
예시:
QDateTime startDate(QDate(2012, 7, 6), QTime(8, 30, 0));QDateTime endDate(QDate(2012, 7, 7), QTime(16, 30, 0));qDebug() << "Days from startDate to endDate: " << startDate.daysTo(endDate); 시작 날짜 = QDateTime(QDate(2012, 7, 6), QTime(23, 55, 0)); endDate = = QDateTime(QDate(2012, 7, 7), QTime(0, 5, 0));qDebug() << "Days from startDate to endDate: " << startDate.daysTo(endDate); qSwap(startDate, endDate); // Make endDate before startDate. qDebug() << "Days from startDate to endDate: " << startDate.daysTo(endDate);
addDays(), secsTo() 및 msecsTo()도 참조하세요 .
[static]
QDateTime QDateTime::fromCFDate(CFDateRef date)
CFDate 복사본이 포함된 QDateTime 을 새로 만듭니다 date.
toCFDate()도 참조하세요 .
[static]
QDateTime QDateTime::fromMSecsSinceEpoch(qint64 msecs, const QTimeZone &timeZone)
timeZone 에 지정된 대로 1970년 시작 후 주어진 숫자 msecs 밀리초(UTC 기준)를 나타내는 날짜/시간을 반환합니다. 기본 시간 표현은 현지 시간입니다.
msecs 의 유효한 범위인 QDateTime 을 벗어나는 음수 및 양수 값이 있을 수 있다는 점에 유의하세요. 이 함수의 동작은 이러한 값에 대해 정의되지 않았습니다.
fromSecsSinceEpoch(), toMSecsSinceEpoch() 및 setMSecsSinceEpoch()도 참조하세요 .
[static]
QDateTime QDateTime::fromMSecsSinceEpoch(qint64 msecs)
과부하가 걸린 기능입니다.
[static, until 6.9]
QDateTime QDateTime::fromMSecsSinceEpoch(qint64 msecs, Qt::TimeSpec spec, int offsetSeconds = 0)
이 함수는 버전 6.9에서 더 이상 사용되지 않을 예정입니다.
이 함수는 과부하가 걸린 함수입니다.
대신 QTimeZone 를 전달하거나 spec 및 offsetSeconds 를 생략하세요.
spec 및 offsetSeconds 에 지정된 대로 1970년 시작 후 주어진 숫자 msecs 밀리초(UTC 기준)를 나타내는 날짜/시간을 반환합니다.
msecs 의 유효한 범위인 QDateTime 을 벗어나는 음수 및 양수 값이 있을 수 있다는 점에 유의하세요. 이 함수의 동작은 이러한 값에 대해 정의되지 않았습니다.
spec 가 Qt::OffsetFromUTC 이 아닌 경우 offsetSeconds 는 무시됩니다. spec 가 Qt::OffsetFromUTC 이고 offsetSeconds 가 0 인 경우 UTC 의 오프셋이 0 이므로 Qt::UTC 이 spec 로 사용됩니다.
spec 가 Qt::TimeZone 인 경우 Qt::LocalTime 가 대신 사용되며, 이는 현재 시스템 표준 시간대를 사용하는 것과 동일하지만 다르게 표시됩니다.
fromSecsSinceEpoch(), toMSecsSinceEpoch() 및 setMSecsSinceEpoch()도 참조하세요 .
[static]
QDateTime QDateTime::fromNSDate(const NSDate *date)
NSDate date 의 복사본을 포함하는 QDateTime 를 새로 만듭니다.
toNSDate()도 참조하십시오 .
[static]
QDateTime QDateTime::fromSecsSinceEpoch(qint64 secs, const QTimeZone &timeZone)
timeZone 에 지정된 대로 1970년 시작 후 주어진 숫자 secs 초(UTC 기준)를 나타내는 날짜/시간을 반환합니다. 기본 시간 표현은 현지 시간입니다.
secs 의 유효한 범위인 QDateTime 을 벗어나는 음수 및 양수 값이 있을 수 있습니다. 이 함수의 동작은 이러한 값에 대해 정의되지 않았습니다.
fromMSecsSinceEpoch(), toSecsSinceEpoch() 및 setSecsSinceEpoch()도 참조하세요 .
[static]
QDateTime QDateTime::fromSecsSinceEpoch(qint64 secs)
과부하가 걸린 기능입니다.
[static, until 6.9]
QDateTime QDateTime::fromSecsSinceEpoch(qint64 secs, Qt::TimeSpec spec, int offsetSeconds = 0)
이 함수는 버전 6.9에서 더 이상 사용되지 않을 예정입니다.
이 함수는 과부하가 걸린 함수입니다.
대신 QTimeZone 를 전달하거나 spec 및 offsetSeconds 를 생략하세요.
spec 및 offsetSeconds 에 지정된 대로 1970년 시작 후 주어진 숫자 secs 초(UTC 기준)의 순간을 나타내는 날짜/시간을 반환합니다.
QDateTime 의 유효한 범위를 벗어나는 secs 값은 음수와 양수 모두 가능합니다. 이 함수의 동작은 이러한 값에 대해 정의되지 않았습니다.
spec 가 Qt::OffsetFromUTC 이 아닌 경우 offsetSeconds 는 무시됩니다. spec 가 Qt::OffsetFromUTC 이고 offsetSeconds 가 0 인 경우 UTC 의 오프셋이 0 이므로 Qt::UTC 이 spec 로 사용됩니다.
spec 가 Qt::TimeZone 인 경우 Qt::LocalTime 가 대신 사용되며, 이는 현재 시스템 표준 시간대를 사용하는 것과 동일하지만 다르게 표시됩니다.
fromMSecsSinceEpoch(), toSecsSinceEpoch() 및 setSecsSinceEpoch()도 참조하세요 .
[static, since 6.4]
QDateTime QDateTime::fromStdLocalTime(const std::chrono::local_time<std::chrono::milliseconds> &time)
현지 시간으로 1970-01-01T00:00:00.000(Qt::LocalTime)부터 계산된 날짜 및 시간이 밀리초( time)로 표시되는 날짜/시간을 생성합니다.
참고: 이 함수는 C++20이 필요합니다.
이 함수는 Qt 6.4에 도입되었습니다.
toStdSysMilliseconds() 및 fromMSecsSinceEpoch()도 참조하십시오 .
[static, since 6.4]
QDateTime QDateTime::fromStdTimePoint(const std::chrono::local_time<std::chrono::milliseconds> &time)
현지 시간으로 1970-01-01T00:00:00.000(Qt::LocalTime)부터 계산된 날짜 및 시간이 밀리초( time)로 표시되는 날짜/시간을 생성합니다.
참고: 이 함수는 C++20이 필요합니다.
이 함수는 Qt 6.4에 도입되었습니다.
toStdSysMilliseconds() 및 fromMSecsSinceEpoch()도 참조하십시오 .
[static, since 6.4]
template <typename Clock, typename Duration> QDateTime QDateTime::fromStdTimePoint(const std::chrono::time_point<Clock, Duration> &time)
Qt::UTC 을 시간 표현으로 사용하여 time 과 같은 시점을 나타내는 날짜 시간을 생성합니다.
time 의 시계는 std::chrono::system_clock
과 호환되어야 하며, 특히 std::chrono::clock_cast
에서 지원하는 변환이 존재해야 합니다. 변환 후 결과의 기간 유형은 std::chrono::milliseconds
로 변환할 수 있어야 합니다.
그렇지 않은 경우, 호출자는 이 함수에 대한 입력이 위의 제약 조건을 만족하도록 std::chrono::system_clock
로 필요한 시계 변환과 지속 시간 유형(캐스트/원형/바닥/천정/...)의 필요한 변환을 수행해야 합니다.
참고: 이 함수는 C++20이 필요합니다.
이 함수는 Qt 6.4에 도입되었습니다.
toStdSysMilliseconds() 및 fromMSecsSinceEpoch()도 참조하십시오 .
[static, since 6.4]
QDateTime QDateTime::fromStdTimePoint(std::chrono::time_point<std::chrono::system_clock, std::chrono::milliseconds> time)
이 함수는 오버로드된 함수입니다.
Qt::UTC 을 시간 표현으로 사용하여 time 과 같은 시점을 나타내는 날짜 시간을 생성합니다.
이 함수는 Qt 6.4에 도입되었습니다.
[static, since 6.4]
QDateTime QDateTime::fromStdZonedTime(const int &time)
time 와 같은 시점을 나타내는 날짜 시간을 생성합니다. 결과는 time 의 표준 시간대로 표현됩니다.
참고: 이 함수는 C++20이 필요합니다.
이 함수는 Qt 6.4에 도입되었습니다.
QTimeZone, toStdSysMilliseconds() 및 fromMSecsSinceEpoch()도 참조하십시오 .
[static]
QDateTime QDateTime::fromString(const QString &string, Qt::DateFormat format = Qt::TextDate)
주어진 format 을 사용하여 string 으로 표시되는 QDateTime 을 반환하거나 이것이 불가능한 경우 잘못된 날짜 시간을 반환합니다.
Qt::TextDate: 영어의 짧은 월 이름(예: 짧은 형식의 "Jan" 또는 긴 형식의 "January")만 인식됩니다.
toString() 및 QLocale::toDateTime()도 참조하세요 .
[static]
QDateTime QDateTime::fromString(const QString &string, const QString &format, int baseYear, QCalendar cal)
주어진 format 을 사용하여 string 으로 표시되는 QDateTime 을 반환하거나 문자열을 구문 분석할 수 없는 경우 잘못된 날짜/시간을 반환합니다.
달력이 제공된 경우 cal, 그렇지 않으면 그레고리력을 사용합니다.
format 에서 연도의 마지막 두 자리만 지정하는 경우 baseYear 에서 시작하는 100년이 우선적으로 고려됩니다. 6.7 이전에는 baseYear 매개변수가 없었으며 항상 1900이 사용되었습니다. baseYear 의 기본값은 그때부터 1999년까지 연도를 선택하는 것입니다. 경우에 따라 주어진 모든 필드와 일치하는 결과를 얻기 위해 다른 필드가 다음 세기 또는 이전 세기를 선택하게 될 수도 있습니다. 자세한 내용은 QDate::fromString()를 참조하세요.
이 메서드는 QDate::fromString() 및 QTime::fromString()로 날짜와 시간의 일부를 나타내는 형식 문자열에서 인식되는 표현식 외에도 이 메서드가 지원하는 표현식도 있습니다:
표현식 | 출력 |
---|---|
t | 표준 시간대(오프셋, 이름, "Z" 또는 "UTC" 접두사가 있는 오프셋) |
tt | 시와 분 사이에 콜론이 없는 오프셋 형식의 표준 시간대(예: "+0200") |
ttt | 시와 분 사이에 콜론이 있는 오프셋 형식의 표준 시간대(예: "+02:00") |
tttt | 시간대 이름(예: "유럽/베를린"). 인식되는 이름은 QTimeZone 에 알려진 이름이며, 사용 중인 운영 체제에 따라 달라질 수 있습니다. |
't' 형식 지정자가 없으면 시스템의 현지 표준 시간대가 사용됩니다. 다른 모든 필드의 기본값은 QDate::fromString() 및 QTime::fromString()를 참조하세요.
예를 들어
QDateTime dateTime = QDateTime::fromString("1.30.1", "M.d.s"); // dateTime is January 30 in 1900 at 00:00:01. dateTime = QDateTime::fromString("12", "yy"); // dateTime is January 1 in 1912 at 00:00:00.
다른 모든 입력 문자는 텍스트로 처리됩니다. 작은따옴표로 묶인 비어 있지 않은 문자 시퀀스도 (따옴표가 제거된) 텍스트로 취급되며 표현식으로 해석되지 않습니다.
QTime time1 = QTime::fromString("131", "HHh"); // time1 is 13:00:00 QTime time1 = QTime::fromString("1apA", "1amAM"); // time1 is 01:00:00 QDateTime dateTime2 = QDateTime::fromString("M1d1y9800:01:02", "'M'M'd'd'y'yyhh:mm:ss"); // dateTime is 1 January 1998 00:01:02
형식이 충족되지 않으면 잘못된 QDateTime 이 반환됩니다. 형식은 만족하지만 string 이 잘못된 날짜 시간을 나타내는 경우(예: 시간대 전환으로 건너뛴 간격이 있는 경우) 유효한 QDateTime 이 반환되며, 이는 유효한 가까운 날짜 시간을 나타냅니다.
선행 0이 없는 표현식(d, M, h, m, s, z)은 욕심을 부리게 됩니다. 즉, 범위를 벗어나거나 다른 섹션에 너무 적은 숫자가 남더라도 두 자리(z의 경우 세 자리)를 사용하게 됩니다.
예를 들어 1월 1일 00:30.00을 의미할 수도 있지만 M은 두 자리 숫자를 가져갑니다.
string 의 필드를 잘못 지정하면 잘못된 QDateTime 이 반환됩니다. 현지 시간으로 100년 시작과 9999년 말 사이의 날짜 시간만 지원됩니다. UTC를 포함한 다른 표준 시간대의 이 범위 끝에 가까운 날짜는 현지 표준 시간대에 따라 이 범위를 벗어날 수 있으며 따라서 유효하지 않은 것으로 처리될 수 있다는 점에 유의하세요.
참고: 요일 및 월 이름과 오전/오후 표시기는 반드시 영문(C 로캘)으로 입력해야 합니다. 현지화된 월 및 일 이름이나 현지화된 형태의 오전/오후를 인식하려면 QLocale::system().toDateTime()을 사용하세요.
참고: 포맷 문자를 사용하여 위 표에서 가장 긴 표현식보다 여러 번 반복되는 경우 포맷의 이 부분은 구분 기호 없이 여러 표현식으로 읽히며, 위의 가장 긴 표현식은 복사본이 있는 만큼 반복되고 더 짧은 표현식일 수 있는 잔류문으로 끝납니다. 따라서 'tttttt'
은 "Europe/BerlinEurope/Berlin"
과 일치하고 시간대를 베를린 시간으로 설정하지만, 날짜/시간 문자열에 "유럽/베를린Z"가 포함된 경우 "일치"하지만 일관되지 않은 결과를 생성하여 잘못된 날짜/시간으로 이어집니다.
toString(), QDate::fromString(), QTime::fromString() 및 QLocale::toDateTime()도 참조하세요 .
[static, since 6.0]
QDateTime QDateTime::fromString(QStringView string, Qt::DateFormat format = Qt::TextDate)
이 함수는 오버로드된 함수입니다.
이 함수는 Qt 6.0에 도입되었습니다.
[static, since 6.0]
QDateTime QDateTime::fromString(QStringView string, QStringView format, QCalendar cal)
이 함수는 오버로드된 함수입니다.
이 함수는 Qt 6.0에 도입되었습니다.
[static, since 6.7]
QDateTime QDateTime::fromString(QStringView string, QStringView format, int baseYear = QLocale::DefaultTwoDigitBaseYear)
이 함수는 과부하된 함수입니다.
기본적으로 구성된 QCalendar 을 사용합니다.
이 함수는 Qt 6.7에 도입되었습니다.
[static, since 6.0]
QDateTime QDateTime::fromString(const QString &string, QStringView format, QCalendar cal)
이 함수는 오버로드된 함수입니다.
이 함수는 Qt 6.0에 도입되었습니다.
[static, since 6.7]
QDateTime QDateTime::fromString(const QString &string, QStringView format, int baseYear = QLocale::DefaultTwoDigitBaseYear)
이 함수는 과부하된 함수입니다.
기본적으로 구성된 QCalendar 을 사용합니다.
이 함수는 Qt 6.7에 도입되었습니다.
[static]
QDateTime QDateTime::fromString(const QString &string, const QString &format, QCalendar cal)
과부하가 걸린 기능입니다.
[static, since 6.7]
QDateTime QDateTime::fromString(const QString &string, const QString &format, int baseYear = QLocale::DefaultTwoDigitBaseYear)
이 함수는 과부하된 함수입니다.
기본적으로 구성된 QCalendar 을 사용합니다.
이 함수는 Qt 6.7에 도입되었습니다.
[static, since 6.7]
QDateTime QDateTime::fromString(QStringView string, QStringView format, int baseYear, QCalendar cal)
이 함수는 오버로드된 함수입니다.
이 함수는 Qt 6.7에 도입되었습니다.
[static, since 6.0]
QDateTime QDateTime::fromString(const QString &string, QStringView format, int baseYear, QCalendar cal)
이 함수는 오버로드된 함수입니다.
이 함수는 Qt 6.0에 도입되었습니다.
bool QDateTime::isDaylightTime() const
이 날짜가 서머타임에 해당하는 경우 반환합니다.
Qt::TimeSpec 가 Qt::LocalTime 또는 Qt::TimeZone 가 아닌 경우 항상 false를 반환합니다.
timeSpec()도 참조하세요 .
bool QDateTime::isNull() const
날짜와 시간이 모두 null이면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다. 날짜/시간이 null이면 유효하지 않습니다.
QDate::isNull(), QTime::isNull() 및 isValid()도 참조하세요 .
bool QDateTime::isValid() const
이 날짜/시간이 확실한 순간을 나타내는 경우 true
를 반환하고, 그렇지 않으면 false
을 반환합니다.
날짜와 시간이 모두 유효하고 사용된 시간 표현이 그 조합에 유효한 의미를 부여하는 경우 날짜/시간은 유효합니다. 시간 표현이 특정 시간대 또는 현지 시간인 경우 서머타임 전환으로 인해 한 시간이 건너뛰는 경우(일반적으로 봄의 밤)와 같이 일부 날짜에는 해당 시간대가 건너뛰는 시간이 있을 수 있습니다. 예를 들어, 서머타임이 오전 2시에 끝나고 시계가 오전 3시로 넘어가는 경우 해당 날짜의 02:00:00~02:59:59.999 날짜는 유효하지 않습니다.
QDateTime::YearRange, QDate::isValid() 및 QTime::isValid()도 참조하세요 .
qint64 QDateTime::msecsTo(const QDateTime &other) const
이 날짜 시간에서 other 날짜 시간까지의 시간(밀리초)을 반환합니다. other 날짜 시간이 이 날짜 시간보다 빠르면 반환되는 값은 음수입니다.
비교를 수행하기 전에 두 날짜 시간 중 하나에는 서머타임(DST)이 적용되지만 다른 날짜 시간에는 적용되지 않는 경우 결과가 올바른지 확인하기 위해 두 날짜 시간을 Qt::UTC 로 변환합니다.
두 날짜 시간 중 하나가 유효하지 않으면 0을 반환합니다.
addMSecs(), daysTo() 및 QTime::msecsTo()도 참조하세요 .
int QDateTime::offsetFromUtc() const
이 날짜 시간의 UTC로부터의 오프셋을 초 단위로 반환합니다.
결과는 timeSpec()에 따라 달라집니다:
Qt::UTC
오프셋은 0입니다.Qt::OffsetFromUTC
오프셋은 원래 설정된 값입니다.Qt::LocalTime
UTC로부터의 현지 시간 오프셋이 반환됩니다.Qt::TimeZone
표준 시간대에서 사용하는 오프셋이 반환됩니다.
마지막 두 개의 경우 서머타임 오프셋을 고려하여 이 날짜 및 시간의 오프셋이 반환됩니다. 오프셋은 현지 시간 또는 지정된 시간대의 시간과 UTC 시간 간의 차이로, UTC보다 앞선 시간대(적도 동쪽)에서는 양수, UTC보다 뒤처진 시간대(적도 서쪽)에서는 음수입니다.
setOffsetFromUtc()도 참조하세요 .
qint64 QDateTime::secsTo(const QDateTime &other) const
이 날짜 시간에서 other 날짜 시간까지의 시간(초)을 반환합니다. other 날짜/시간이 이 날짜/시간보다 빠르면 반환되는 값은 음수입니다.
비교를 수행하기 전에 두 날짜 시간 중 하나에 서머타임(DST)이 적용되지만 다른 날짜 시간에는 적용되지 않는 경우 결과가 올바른지 확인하기 위해 두 날짜 시간을 Qt::UTC 로 변환합니다.
두 날짜 시간 중 하나가 유효하지 않으면 0을 반환합니다.
예시:
QDateTime now = QDateTime::currentDateTime();QDateTime xmas(QDate(now.date().year(), 12, 25).startOfDay());qDebug("There are %d seconds to Christmas", now.secsTo(xmas));
addSecs(), daysTo() 및 QTime::secsTo()도 참조하세요 .
void QDateTime::setDate(QDate date, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior)
이 날짜의 날짜 부분을 date 로 설정합니다.
아직 시간이 설정되지 않은 경우 자정으로 설정됩니다. date 이 유효하지 않은 경우 QDateTime 이 유효하지 않게 됩니다.
date 및 time()이 이 날짜 시간의 시간 표현에 대한 전환에 가까운 순간을 설명하는 경우 resolve 은 해당 상황이 해결되는 방식을 제어합니다.
참고: Qt 6.7 이전 버전에는 이 함수에 resolve 매개 변수가 없었기 때문에 전환과 관련된 모호성을 해결할 방법이 없었습니다.
date(), setTime() 및 setTimeZone()도 참조하세요 .
void QDateTime::setMSecsSinceEpoch(qint64 msecs)
날짜 시간을 1970년 시작 후 밀리초 단위의 지정된 숫자( msecs)를 나타내는 순간으로 설정합니다(UTC 기준).
표준 시간대를 지원하지 않는 시스템에서는 이 함수가 현지 시간이 Qt::UTC 인 것처럼 작동합니다.
최소값인 qint64
(std::numeric_limits<qint64>::min()
)을 msecs 에 전달하면 정의되지 않은 동작이 발생합니다.
setSecsSinceEpoch(), toMSecsSinceEpoch() 및 fromMSecsSinceEpoch()도 참조하세요 .
[until 6.9]
void QDateTime::setOffsetFromUtc(int offsetSeconds)
이 함수는 버전 6.9에서 더 이상 사용되지 않을 예정입니다.
대신 setTimeZone(QTimeZone::fromSecondsAheadOfUtc(offsetSeconds))를 사용하세요.
timeSpec()를 Qt::OffsetFromUTC 으로, 오프셋을 offsetSeconds 으로 설정합니다. 날짜 시간은 다른 시점을 참조할 수 있습니다.
최대 및 최소 오프셋은 양수 또는 음수 14시간입니다. offsetSeconds 이 이보다 크거나 작으면 결과가 정의되지 않습니다.
offsetSeconds 가 0이면 timeSpec()는 Qt::UTC 로 설정됩니다.
setTimeZone(), isValid(), offsetFromUtc() 및 toOffsetFromUtc()도 참조하세요 .
void QDateTime::setSecsSinceEpoch(qint64 secs)
날짜 시간을 1970년 시작 후 초 단위로 주어진 숫자 secs 로 설정합니다(UTC 기준).
표준 시간대를 지원하지 않는 시스템에서는 이 함수가 현지 시간이 Qt::UTC 인 것처럼 작동합니다.
setMSecsSinceEpoch(), toSecsSinceEpoch() 및 fromSecsSinceEpoch()도 참조하세요 .
void QDateTime::setTime(QTime time, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior)
이 날짜 시간의 시간 부분을 time 으로 설정합니다. time 이 유효하지 않은 경우 이 함수는 자정으로 설정합니다. 따라서 QDateTime 에서 설정된 시간을 기본값 QTime 으로 설정하여 지울 수 있습니다:
date() 및 time 이 날짜 시간의 시간 표현에 대한 전환에 가까운 순간을 설명하는 경우 resolve 는 해당 상황이 해결되는 방법을 제어합니다.
참고: Qt 6.7 이전 버전에는 이 함수의 resolve 매개 변수가 없었기 때문에 전환과 관련된 모호성을 해결할 방법이 없었습니다.
time(), setDate() 및 setTimeZone()도 참조하세요 .
[until 6.9]
void QDateTime::setTimeSpec(Qt::TimeSpec spec)
이 기능은 버전 6.9에서 더 이상 사용되지 않을 예정입니다.
대신 setTimeZone() 사용
이 날짜 시간에 사용되는 시간 사양을 spec 으로 설정합니다. 날짜 시간은 다른 시점을 참조할 수 있습니다.
spec 가 Qt::OffsetFromUTC 인 경우 timeSpec()는 Qt::UTC 로 설정됩니다(즉, 유효 오프셋은 0).
spec 가 Qt::TimeZone 인 경우 사양은 Qt::LocalTime, 즉 현재 시스템 표준 시간대로 설정됩니다.
예시:
QDateTime local(QDateTime::currentDateTime());qDebug() << "Local time is:" << local; QDateTime UTC(local); UTC.setTimeSpec(Qt::UTC);qDebug() << "UTC time is:" << UTC; qDebug() << "There are" << local.secsTo(UTC) << "seconds difference between the datetimes.";
setTimeZone(), timeSpec(), toTimeSpec(), setDate() 및 setTime()도 참조하세요 .
void QDateTime::setTimeZone(const QTimeZone &toZone, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior)
이 날짜에 사용되는 표준 시간대를 toZone 로 설정합니다.
날짜 시간은 다른 시점을 나타낼 수 있습니다. toZone 의 시간 표현을 사용하므로 변경되지 않은 date() 및 time()의 의미가 변경될 수 있습니다.
toZone 이 유효하지 않은 경우 날짜/시간이 유효하지 않습니다. 그렇지 않으면 통화 후 이 날짜 시간의 timeSpec()는 toZone.timeSpec()
과 일치합니다.
date() 및 time()이 toZone 에 대한 전환에 가까운 순간을 설명하는 경우 resolve 은 해당 상황이 해결되는 방식을 제어합니다.
참고: Qt 6.7 이전 버전에는 이 함수에 resolve 매개 변수가 없었기 때문에 전환과 관련된 모호성을 해결할 방법이 없었습니다.
timeRepresentation(), timeZone() 및 Qt::TimeSpec 를참조하세요 .
[noexcept]
void QDateTime::swap(QDateTime &other)
이 날짜를 other 로 바꿉니다. 이 작업은 매우 빠르며 실패하지 않습니다.
QTime QDateTime::time() const
날짜 시간의 시간 부분을 반환합니다.
setTime(), date() 및 timeRepresentation()도 참조하세요 .
[since 6.5]
QTimeZone QDateTime::timeRepresentation() const
이 날짜/시간이 시간을 나타내는 방법을 식별하는 QTimeZone 을 반환합니다.
반환된 QTimeZone 의 timeSpec()는 이 날짜 시간의 ()와 일치하며, Qt::TimeZone 이 아닌 경우 반환된 QTimeZone 은 시간 표현입니다. timeSpec ()가 Qt::OffsetFromUTC 인 경우 반환된 QTimeZone 의 fixedSecondsAheadOfUtc()가 오프셋을 제공합니다. timeSpec ()가 Qt::TimeZone 인 경우 QTimeZone 객체 자체가 해당 시간대의 전체 표현입니다.
이 함수는 Qt 6.5에 도입되었습니다.
timeZone(), setTimeZone() 및 QTimeZone::asBackendZone()도 참조하십시오 .
Qt::TimeSpec QDateTime::timeSpec() const
날짜 시간의 시간 사양을 반환합니다.
현지 시간, UTC, UTC로부터의 고정 오프셋(오프셋을 표시하지 않음) 또는 시간대(해당 시간대의 세부 정보를 제공하지 않음)로 시간 표현을 분류합니다. timeRepresentation().timeSpec()
에 해당합니다.
setTimeSpec(), timeRepresentation(), date() 및 time()도 참조하세요 .
QTimeZone QDateTime::timeZone() const
날짜 시간의 표준 시간대를 반환합니다.
결과는 timeRepresentation().asBackendZone()
과 동일합니다. 모든 경우에 timeSpec()의 결과는 Qt::TimeZone 입니다.
timeSpec()가 Qt::LocalTime 인 경우 결과는 이 메서드가 호출된 시점의 현지 시간을 설명합니다. 이 메서드는 결과를 가져온 QDateTime 에서도 시스템 표준 시간대의 후속 변경 사항을 반영하지 않습니다.
timeRepresentation(), setTimeZone(), Qt::TimeSpec, 및 QTimeZone::asBackendZone()도 참조하세요 .
QString QDateTime::timeZoneAbbreviation() const
이 날짜 시간의 표준 시간대 약어를 반환합니다.
반환되는 문자열은 timeSpec()에 따라 다릅니다:
- Qt::UTC 의 경우 "UTC"입니다.
- Qt::OffsetFromUTC 의 경우 "UTC±00:00" 형식입니다.
- Qt::LocalTime 의 경우 호스트 시스템이 쿼리됩니다.
- Qt::TimeZone 의 경우 연결된 QTimeZone 객체가 쿼리됩니다.
참고: 약어가 고유하다는 보장은 없습니다. 즉, 시간대가 다르면 약어가 같을 수 있습니다. Qt::LocalTime 및 Qt::TimeZone 의 경우 호스트 시스템에서 반환할 때 약어가 지역화될 수 있습니다.
timeSpec() 및 QTimeZone::abbreviation()도 참조하세요 .
CFDateRef QDateTime::toCFDate() const
QDateTime 에서 CFDate를 생성합니다.
호출자는 CFDate 객체를 소유하고 릴리스할 책임이 있습니다.
fromCFDate()도 참조하세요 .
QDateTime QDateTime::toLocalTime() const
현지 시간으로 변환된 이 날짜/시간의 복사본을 반환합니다.
결과는 이 날짜시간과 동일한 시점을 나타내며 이 날짜시간과 동일합니다.
예시:
QDateTime UTC(QDateTime::currentDateTimeUtc());QDateTime local(UTC.toLocalTime());qDebug() << "UTC time is:" << UTC; qDebug() << "Local time is:" << local; qDebug() << "No difference between times:" << UTC.secsTo(local);
toTimeZone(), toUTC() 및 toOffsetFromUtc()도 참조하세요 .
qint64 QDateTime::toMSecsSinceEpoch() const
날짜 시간을 1970년 시작 후 밀리초(UTC 기준)로 반환합니다.
표준 시간대를 지원하지 않는 시스템에서 이 함수는 현지 시간이 Qt::UTC 인 것처럼 작동합니다.
이 객체에 저장된 날짜 시간이 유효하지 않은 경우 이 함수의 동작은 정의되지 않습니다. 그러나 모든 유효한 날짜에 대해 이 함수는 고유한 값을 반환합니다.
toSecsSinceEpoch(), setMSecsSinceEpoch() 및 fromMSecsSinceEpoch()도 참조하세요 .
NSDate *QDateTime::toNSDate() const
QDateTime 에서 NSDate를 생성합니다.
NSDate 개체는 자동으로 릴리스됩니다.
fromNSDate()도 참조하세요 .
QDateTime QDateTime::toOffsetFromUtc(int offsetSeconds) const
주어진 offsetSeconds 을 사용하여 Qt::OffsetFromUTC 의 사양으로 변환된 이 날짜 시간의 사본을 반환합니다. toTimeZone(QTimeZone::fromSecondsAheadOfUtc(offsetSeconds))
에 해당합니다.
offsetSeconds 이 0이면 UTC 날짜 시간이 반환됩니다.
결과는 이 날짜시간과 동일한 시점을 나타내며 이 날짜시간과 동일합니다.
setOffsetFromUtc(), offsetFromUtc() 및 toTimeZone()도 참조하세요 .
qint64 QDateTime::toSecsSinceEpoch() const
날짜 시간을 1970년 시작 후 초 단위(UTC)로 반환합니다.
표준 시간대를 지원하지 않는 시스템에서 이 함수는 현지 시간이 Qt::UTC 인 것처럼 작동합니다.
이 객체에 저장된 날짜 시간이 유효하지 않은 경우 이 함수의 동작은 정의되지 않습니다. 그러나 모든 유효한 날짜에 대해 이 함수는 고유한 값을 반환합니다.
toMSecsSinceEpoch(), fromSecsSinceEpoch() 및 setSecsSinceEpoch()도 참조하세요 .
[since 6.4]
std::chrono::sys_time<std::chrono::milliseconds> QDateTime::toStdSysMilliseconds() const
std::chrono::system_clock
을 시계로 사용하여 이 날짜/시간 객체를 밀리초로 표시되는 동등한 시점으로 변환합니다.
참고: 이 함수는 C++20이 필요합니다.
이 함수는 Qt 6.4에 도입되었습니다.
fromStdTimePoint() 및 toMSecsSinceEpoch()도 참조하십시오 .
[since 6.4]
std::chrono::sys_seconds QDateTime::toStdSysSeconds() const
std::chrono::system_clock
을 시계로 사용하여 이 날짜/시간 객체를 초 단위로 표시되는 동등한 시점으로 변환합니다.
참고: 이 함수는 C++20이 필요합니다.
이 함수는 Qt 6.4에 도입되었습니다.
fromStdTimePoint() 및 toSecsSinceEpoch()도 참조하십시오 .
QString QDateTime::toString(QStringView format) const
과부하가 걸린 기능입니다.
QString QDateTime::toString(Qt::DateFormat format = Qt::TextDate) const
이 함수는 오버로드된 함수입니다.
주어진 format 문자열로 날짜/시간을 반환합니다.
format 이 Qt::TextDate 인 경우 문자열의 형식이 기본값으로 지정됩니다. 요일 및 월 이름은 영어로 표시됩니다. 이 서식의 예는 "Wed May 20 03:40:13 1998"입니다. 현지화된 서식은 QLocale::toString()를 참조하세요.
format 가 Qt::ISODate 인 경우 문자열 형식은 날짜 및 시간 표현에 대한 ISO 8601 확장 사양에 해당하며, QDateTime 의 timeSpec()에 따라 yyyy-MM-ddTHH:mm:ss[Z|±HH:mm] 형식이 됩니다. timeSpec()가 Qt::UTC 인 경우 문자열에 Z가 추가되고, timeSpec()가 Qt::OffsetFromUTC 인 경우 UTC로부터 시 및 분 단위 오프셋이 문자열에 추가됩니다. ISO 8601 날짜에 밀리초를 포함하려면 format Qt::ISODateWithMs 을 사용하며, 이는 yyyy-MM-ddTHH:mm:ss.zzz[Z|±HH:mm]에 해당합니다.
format 이 Qt::RFC2822Date 인 경우 문자열은 RFC 2822에 따라 형식이 지정됩니다.
날짜/시간이 유효하지 않으면 빈 문자열이 반환됩니다.
경고: Qt::ISODate 형식은 0~9999 범위의 연도에만 유효합니다.
fromString(), QDate::toString(), QTime::toString() 및 QLocale::toString()도 참조하세요 .
QString QDateTime::toString(const QString &format) const
과부하가 걸린 기능입니다.
[until 6.9]
QDateTime QDateTime::toTimeSpec(Qt::TimeSpec spec) const
이 기능은 버전 6.9에서 더 이상 사용되지 않을 예정입니다.
대신 toTimeZone()를 사용하세요.
주어진 시간으로 변환된 이 날짜/시간의 복사본을 반환합니다 spec.
결과는 이 날짜시간과 동일한 시점을 나타내며 이 날짜시간과 동일합니다.
spec 가 Qt::OffsetFromUTC 인 경우 Qt::UTC 로 설정됩니다. UTC에서 고정된 오프셋으로 설정하려면 toTimeZone() 또는 toOffsetFromUtc()를 사용합니다.
spec 가 Qt::TimeZone 인 경우 Qt::LocalTime, 즉 현지 표준 시간대로 설정됩니다. 지정된 시간대를 설정하려면 toTimeZone()를 사용합니다.
예:
QDateTime local(QDateTime::currentDateTime());QDateTime UTC(local.toTimeSpec(Qt::UTC));qDebug() << "Local time is:" << local; qDebug() << "UTC time is:" << UTC; qDebug() << "No difference between times:" << local.secsTo(UTC);
setTimeSpec(), timeSpec() 및 toTimeZone()도 참조하세요 .
QDateTime QDateTime::toTimeZone(const QTimeZone &timeZone) const
주어진 timeZone 으로 변환된 이 날짜/시간의 사본을 반환합니다.
결과는 이 날짜시간과 동일한 시점을 나타내며 이 날짜시간과 동일합니다.
결과는 timeZone 의 시간 표현에 따라 현재 시점을 설명합니다. 예를 들어
QDateTime local(QDateTime::currentDateTime());QDateTime UTC(local.toTimeSpec(QTimeZone::UTC));qDebug() << "Local time is:" << local; qDebug() << "UTC time is:" << UTC; qDebug() << "No difference between times represented:" << local.secsTo(UTC);
timeZone 이 유효하지 않은 경우 날짜/시간이 유효하지 않습니다. 그렇지 않으면 반환된 날짜/시간의 timeSpec()는 timeZone.timeSpec()
과 일치합니다.
timeRepresentation(), toLocalTime(), toUTC() 및 toOffsetFromUtc()도 참조하세요 .
QDateTime QDateTime::toUTC() const
UTC로 변환된 이 날짜/시간의 복사본을 반환합니다.
결과는 이 날짜시간과 동일한 시점을 나타내며 이 날짜시간과 동일합니다.
예시:
QDateTime local(QDateTime::currentDateTime());QDateTime UTC(local.toUTC());qDebug() << "Local time is:" << local; qDebug() << "UTC time is:" << UTC; qDebug() << "No difference between times:" << local.secsTo(UTC);
toTimeZone(), toLocalTime() 및 toOffsetFromUtc()도 참조하세요 .
[since 6.4]
QDateTime &QDateTime::operator+=(std::chrono::milliseconds duration)
주어진 duration 을 추가하여 이 날짜/시간 객체를 수정합니다. duration 이 양수이면 업데이트된 객체는 나중에, 음수이면 이전에 업데이트됩니다.
이 날짜/시간이 유효하지 않으면 이 함수는 효과가 없습니다.
이 날짜/시간 객체에 대한 참조를 반환합니다.
이 함수는 Qt 6.4에 도입되었습니다.
addMSecs()도 참조하세요 .
[since 6.4]
QDateTime &QDateTime::operator-=(std::chrono::milliseconds duration)
주어진 duration 을 빼서 이 날짜/시간 객체를 수정합니다. duration 이 양수이면 업데이트된 객체는 이전이 되고 음수이면 이후가 됩니다.
이 날짜/시간이 유효하지 않으면 이 함수는 아무런 영향을 미치지 않습니다.
이 날짜/시간 객체에 대한 참조를 반환합니다.
이 함수는 Qt 6.4에 도입되었습니다.
addMSecs 를참조하십시오 .
[noexcept]
QDateTime &QDateTime::operator=(const QDateTime &other)
other 날짜 시간을 여기에 복사하고 이 복사본을 반환합니다.
관련 비회원
[since 6.4]
QDateTime operator+(const QDateTime &dateTime, std::chrono::milliseconds duration)
[since 6.4]
QDateTime operator+(std::chrono::milliseconds duration, const QDateTime &dateTime)
dateTime (음수인 경우 duration )보다 밀리초 늦은 날짜 시간( duration )이 포함된 QDateTime 객체를 반환합니다.
dateTime 가 유효하지 않으면 유효하지 않은 날짜 시간이 반환됩니다.
이 함수는 Qt 6.4에 도입되었습니다.
addMSecs()도 참조하십시오 .
[noexcept]
bool operator!=(const QDateTime &lhs, const QDateTime &rhs)
lhs 이 rhs 과 다르면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
서로 다른 시간 표현을 사용하는 두 날짜는 UTC와 다른 오프셋을 가질 수 있습니다. 이 경우 date()와 time()가 다르더라도 그 차이가 UTC 오프셋의 차이와 일치하면 동등하게 비교할 수 있습니다. date()
과 time()
이 일치하는 경우 UTC로부터 오프셋이 더 큰 것이 오프셋이 더 작은 것보다 (더 이른) 날짜가 됩니다. 결과적으로 날짜 시간은 약하게 정렬됩니다.
5.14부터 모든 유효하지 않은 날짜 시간은 모든 유효한 날짜 시간보다 작고 동일합니다.
operator==()도 참조하세요 .
[since 6.4]
std::chrono::milliseconds operator-(const QDateTime &lhs, const QDateTime &rhs)
lhs 와 rhs 사이의 밀리초 수를 반환합니다. lhs 가 rhs 보다 빠르면 결과는 음수가 됩니다.
두 날짜 시간 중 하나가 유효하지 않으면 0을 반환합니다.
이 함수는 Qt 6.4에 도입되었습니다.
msecsTo()도 참조하십시오 .
[since 6.4]
QDateTime operator-(const QDateTime &dateTime, std::chrono::milliseconds duration)
dateTime 보다 밀리초 앞(또는 duration 이 음수인 경우 그 이후)의 날짜 시간 duration 을 포함하는 QDateTime 객체를 반환합니다.
dateTime 가 유효하지 않으면 유효하지 않은 날짜 시간이 반환됩니다.
이 함수는 Qt 6.4에 도입되었습니다.
addMSecs()도 참조하십시오 .
[noexcept]
bool operator<(const QDateTime &lhs, const QDateTime &rhs)
lhs 이 rhs 보다 빠르면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
서로 다른 시간 표현을 사용하는 두 날짜는 UTC와 다른 오프셋을 가질 수 있습니다. 이 경우 date()와 time()가 다르더라도 그 차이가 UTC 오프셋의 차이와 일치하면 동등하게 비교할 수 있습니다. date()
과 time()
이 일치하는 경우 UTC로부터 오프셋이 더 큰 것이 오프셋이 더 작은 것보다 (더 이른) 날짜가 됩니다. 결과적으로 날짜 시간은 약하게 정렬됩니다.
5.14부터 모든 유효하지 않은 날짜 시간은 모든 유효한 날짜 시간보다 작고 동일합니다.
operator==()도 참조하세요 .
QDataStream &operator<<(QDataStream &out, const QDateTime &dateTime)
out 스트림에 dateTime 을 씁니다.
Qt 데이터 유형 직렬화도참조하십시오 .
[noexcept]
bool operator<=(const QDateTime &lhs, const QDateTime &rhs)
lhs 이 rhs 보다 빠르거나 같으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
서로 다른 시간 표현을 사용하는 두 날짜는 UTC와 다른 오프셋을 가질 수 있습니다. 이 경우 date()와 time()가 다르더라도 그 차이가 UTC 오프셋의 차이와 일치하면 동등하게 비교할 수 있습니다. date()
과 time()
이 일치하는 경우 UTC로부터 오프셋이 더 큰 것이 오프셋이 더 작은 것보다 (더 이른) 날짜가 됩니다. 결과적으로 날짜 시간은 약하게 정렬됩니다.
5.14부터 모든 유효하지 않은 날짜 시간은 모든 유효한 날짜 시간보다 작고 동일합니다.
operator==()도 참조하세요 .
[noexcept]
bool operator==(const QDateTime &lhs, const QDateTime &rhs)
lhs 이 rhs 과 같은 시점을 나타내는 경우 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
서로 다른 시간 표현을 사용하는 두 날짜는 UTC와 다른 오프셋을 가질 수 있습니다. 이 경우 date()와 time()가 다르더라도 그 차이가 UTC 오프셋의 차이와 일치하면 동등하게 비교할 수 있습니다. date()
과 time()
이 일치하는 경우 UTC로부터 오프셋이 더 큰 것이 오프셋이 더 작은 것보다 (더 이른) 날짜가 됩니다. 결과적으로 날짜 시간은 약하게 정렬됩니다.
5.14부터 모든 유효하지 않은 날짜 시간은 모든 유효한 날짜 시간보다 작고 동일합니다.
operator!=(), operator<(), operator<=(), operator>() 및 operator>=()도 참조하세요 .
[noexcept]
bool operator>(const QDateTime &lhs, const QDateTime &rhs)
lhs 이 rhs 보다 늦으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
서로 다른 시간 표현을 사용하는 두 날짜는 UTC와 다른 오프셋을 가질 수 있습니다. 이 경우 date()와 time()가 다르더라도 그 차이가 UTC 오프셋의 차이와 일치하면 동등하게 비교할 수 있습니다. date()
과 time()
이 일치하는 경우 UTC로부터 오프셋이 더 큰 것이 오프셋이 더 작은 것보다 (더 이른) 날짜가 됩니다. 결과적으로 날짜 시간은 약하게 정렬됩니다.
5.14부터 모든 유효하지 않은 날짜 시간은 모든 유효한 날짜 시간보다 작고 동일합니다.
operator==()도 참조하세요 .
[noexcept]
bool operator>=(const QDateTime &lhs, const QDateTime &rhs)
lhs 이 rhs 보다 늦거나 같으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
서로 다른 시간 표현을 사용하는 두 날짜는 UTC와 다른 오프셋을 가질 수 있습니다. 이 경우 date()와 time()가 다르더라도 그 차이가 UTC 오프셋의 차이와 일치하면 동등하게 비교할 수 있습니다. date()
과 time()
이 일치하는 경우 UTC로부터 오프셋이 더 큰 것이 오프셋이 더 작은 것보다 (더 이른) 날짜가 됩니다. 결과적으로 날짜 시간은 약하게 정렬됩니다.
5.14부터 모든 유효하지 않은 날짜 시간은 모든 유효한 날짜 시간보다 작고 동일합니다.
operator==()도 참조하세요 .
QDataStream &operator>>(QDataStream &in, QDateTime &dateTime)
in 스트림에서 dateTime 로 날짜 시간을 읽습니다.
Qt 데이터 유형 직렬화도참조하십시오 .
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.