Date QML Type

날짜 기능을 제공합니다. 더 보기...

Import Statement: import QtQml

메서드

상세 설명

QML Date 객체는 로캘 인식 함수를 사용하여 JS Date 객체를 확장합니다.

format 인수를 받는 함수는 Locale.LongFormat, Locale.ShortFormat, Locale.NarrowFormat 열거형 값 또는 형식을 지정하는 문자열을 받습니다.

지원되는 형식 문자열의 형식은 QDate::toString(), QTime::toString() 및 QDateTime::toString() 문서에 설명된 대로입니다.

날짜가 유효하지 않은 경우 빈 문자열이 반환됩니다.

열거형 값 형식 지정

로캘 기본 설정과 일치하는 형식을 원할 때 열거형 값을 사용합니다.

Locale.LongFormat더 긴 형식
Locale.ShortFormat짧은 형식
Locale.NarrowFormat이 컨텍스트에서는 Locale.ShortFormat과 동일합니다.

열거형이 나타내는 형식은 로캘에 따라 달라질 뿐만 아니라 열거형이 사용되는 메서드에 따라 달라집니다.

예를 들어 en_US 로캘의 경우 이러한 형식 문자열이 사용됩니다:

함수로캘 열거형형식 문자열
fromLocaleDateString, toLocaleDateStringLocale.LongFormatdddd, MMMM d, yyyy
fromLocaleDateString, toLocaleDateString로캘.짧은 형식M/d/yy
fromLocaleTimeString, toLocaleTimeStringLocale.LongFormath:mm:ss AP t
fromLocaleTimeString, toLocaleTimeStringLocale.ShortFormath:mm AP
fromLocaleString, toLocaleStringLocale.LongFormatdddd, MMMM d, yyyy h:mm:ss AP t
fromLocaleString, toLocaleStringLocale.ShortFormatM/d/yy h:mm AP

추가 참고 사항

로캘 인식 함수를 사용하여 날짜 또는 시간 서식을 수행하면 Qt와 JS 간의 사양 불일치로 인해 잘못된 형식의 시간이 발생할 수 있습니다. ECMA-262는 과거 날짜는 현재 서머타임 규칙을 과거 연도에 투영하여 해석해야 한다고 명시한 반면, Qt는 과거 데이터(가능한 경우)를 사용하여 주어진 날짜에 서머타임이 적용되었는지 여부를 결정합니다. 따라서 JS에서 Date 값을 구성하고 로캘 인식 함수를 사용하여 문자열로 변환하면 현재 서머타임이 적용 중인데 지정한 시간에는 적용되지 않았거나 그 반대의 경우 한 시간 정도 잘못된 결과가 나올 수 있습니다.

음수 연도에 대한 이해가 다른 다양한 날짜 형식이 있습니다. 일반적인 인간 언어에는 연도 0이 없습니다. 기원전 1BC 이후의 연도는 1AD입니다. 이러한 이해는 ECMAScript에서 표준화되지 않은 형식 중 하나로 날짜를 인쇄하거나 구문 분석할 때 반영됩니다. 즉, toString(), toLocaleString(), toUTCString() 및 친구들이 이에 해당합니다. ECMAScript는 한 가지 형식을 표준화합니다: ISO 8601입니다. 이것이 toISOString()을 호출할 때 반환되는 형식입니다. 이 형식에는 다른 형식에서는 1BC인 연도 0이 포함됩니다. 따라서 toISOString() 및 toString()을 사용하여 음수 날짜를 인쇄할 때 서로 다른 연도를 얻게 됩니다.

Date 생성자 또는 set(UTC)FullYear()를 사용하여 연도를 설정할 때는 ISO 8601에서 정한 규칙이 사용되며 0이 유효한 연도입니다. 즉, 생성자 또는 set(UTC)FullYear()로 설정된 음수 연도는 0을 기준으로 하므로 toString() 및 친구를 사용하여 출력되는 것과 1년씩 오프셋됩니다. to*String() 메서드의 출력을 구문 분석하면 인쇄한 것과 동일한 날짜 값이 반환됩니다. Date.parse()는 다양한 형식과 연도 0의 존재에 대한 규칙을 인식합니다.

이 모든 것은 일반적으로 모든 문자열 표현에서 연도 0을 유효한 것으로 취급하는 다른 JavaScript 구현에서 얻는 것과는 다릅니다. 하지만 날짜 형식은 ECMAScript 표준에서 "구현에 따라 달라지는" 형식이므로 여전히 유효합니다.

Locale참조하세요 .

메서드 문서

string fromLocaleDateString(locale, dateString, format)

localeformat 을 사용하여 날짜 문자열 dateStringDate 객체로 변환합니다.

format 을 지정하지 않으면 Locale.LongFormat 이 사용됩니다.

locale 을 지정하지 않으면 기본 로캘이 사용됩니다.

다음 예는 먼저 기본 로캘과 형식을 사용하여 현재 날짜를 날짜 문자열로 포맷한 다음 같은 방식으로 다시 구문 분석하는 것을 보여줍니다:

import QtQml 2.0

QtObject {
    property var locale: Qt.locale()
    property date currentDate: new Date()
    property string dateString

    Component.onCompleted: {
        dateString = currentDate.toLocaleDateString();
        print(Date.fromLocaleDateString(dateString));
    }
}

string fromLocaleString(locale, dateTimeString, format)

localeformat 을 사용하여 날짜/시간 문자열 dateTimeStringDate 객체로 변환합니다.

format 을 지정하지 않으면 Locale.LongFormat 이 사용됩니다.

locale 을 지정하지 않으면 기본 로캘이 사용됩니다.

다음 예는 기본 로캘을 사용하여 특정 형식의 날짜/시간 문자열에서 구문 분석되는 날짜/시간을 보여줍니다:

import QtQml 2.0

QtObject {
    property var locale: Qt.locale()
    property string dateTimeString: "Tue 2013-09-17 10:56:06"

    Component.onCompleted: {
        print(Date.fromLocaleString(locale, dateTimeString, "ddd yyyy-MM-dd hh:mm:ss"));
    }
}

string fromLocaleTimeString(locale, timeString, format)

localeformat 을 사용하여 시간 문자열 timeStringDate 객체로 변환합니다.

format 을 지정하지 않으면 Locale.LongFormat 이 사용됩니다.

locale 을 지정하지 않으면 기본 로캘이 사용됩니다.

다음 예는 기본 로캘과 짧은 형식을 사용하여 현재 시간을 먼저 시간 문자열로 형식화한 다음 동일한 방식으로 다시 구문 분석하는 것을 보여줍니다:

import QtQml 2.2

QtObject {
    property var locale: Qt.locale()
    property date currentTime: new Date()
    property string timeString

    Component.onCompleted: {
        timeString = currentTime.toLocaleTimeString(locale, Locale.ShortFormat);
        print(Date.fromLocaleTimeString(locale, timeString, Locale.ShortFormat));
    }
}

string timeZoneUpdated()

날짜 시간 데이터를 올바르게 조작하는 데 필요한 시스템의 표준 시간대가 변경되었음을 JS 엔진에 알립니다.

JS는 날짜 객체를 UTC 시간으로 저장하므로 현지 시간으로 날짜 컴포넌트에 대한 모든 액세스에는 UTC의 현재 오프셋이 적용됩니다. 시간대가 업데이트되어 현재 오프셋이 변경되는 경우 JS 엔진이 오프셋을 다시 계산할 수 있도록 정보를 제공해야 합니다.

이 함수는 시스템의 표준 시간대가 업데이트된 후에 호출해야 합니다.

예를 들어, 시간대를 변경하는 애플리케이션은 새 시간대를 설정한 후 timeZoneUpdated()를 호출합니다:

property string selectedTimeZone

onSelectedTimeZoneChanged: {
    MyFunctions.setSystemTimeZone(selectedTimeZone)
    Date.timeZoneUpdated()
}

string toLocaleDateString(locale, format)

날짜를 지정된 format 에서 지정된 locale 에 적합한 날짜가 포함된 문자열로 변환합니다.

format 을 지정하지 않으면 Locale.LongFormat 이 사용됩니다.

locale 을 지정하지 않으면 기본 로캘이 사용됩니다.

다음 예는 독일어 로캘에 맞게 서식이 지정된 현재 날짜를 보여줍니다:

import QtQuick 2.0

Text {
    text: "The date is: " + new Date().toLocaleDateString(Qt.locale("de_DE"))
}

string toLocaleString(locale, format)

날짜를 지정된 format 에서 지정된 locale 에 적합한 날짜와 시간이 포함된 문자열로 변환합니다.

format 을 지정하지 않으면 Locale.LongFormat 이 사용됩니다.

locale 을 지정하지 않으면 기본 로캘이 사용됩니다.

다음 예는 독일어 로캘에 맞게 형식이 지정된 현재 날짜 및 시간을 보여줍니다:

import QtQuick 2.0

Text {
    text: "The date is: " + new Date().toLocaleString(Qt.locale("de_DE"))
}

string toLocaleTimeString(locale, format)

날짜를 지정된 format 에서 지정된 locale 에 적합한 시간이 포함된 문자열로 변환합니다.

format 을 지정하지 않으면 Locale.LongFormat 이 사용됩니다.

locale 을 지정하지 않으면 기본 로캘이 사용됩니다.

다음 예는 독일어 로캘에 맞게 형식이 지정된 현재 시간을 보여줍니다:

import QtQuick 2.0

Text {
    text: "The date is: " + new Date().toLocaleTimeString(Qt.locale("de_DE"))
}

© 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.