Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qtparsetimezone_p.h
Go to the documentation of this file.
1
// Copyright (C) 2026 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
#
ifndef
QPARSE_TIMEZONE_P_H
5
#
define
QPARSE_TIMEZONE_P_H
6
7
//
8
// W A R N I N G
9
// -------------
10
//
11
// This file is not part of the Qt API. It exists purely as an
12
// implementation detail. This header file may change from version to
13
// version without notice, or even be removed.
14
//
15
// We mean it.
16
//
17
18
#
include
<
QtCore
/
private
/
qtparsecommon_p
.
h
>
19
#
include
<
QtCore
/
private
/
qdatetime_p
.
h
>
20
#
include
<
QtCore
/
qflags
.
h
>
21
#
include
<
QtCore
/
qlocale
.
h
>
22
#
include
<
QtCore
/
qtimezone
.
h
>
23
#
include
<
QtCore
/
private
/
qttemporalpattern_p
.
h
>
24
25
QT_REQUIRE_CONFIG
(
datetimeparser
);
26
27
QT_BEGIN_NAMESPACE
28
29
namespace
QtParseTimeZone
{
30
31
struct
ParsedZone
:
public
QtParseCommon
::
ParsedText
32
{
33
QTimeZone
zone
{
QTimeZone
::
LocalTime
};
34
QDateTimePrivate
::
DaylightStatus
timeType
=
QDateTimePrivate
::
UnknownDaylightTime
;
35
36
constexpr
QDateTime
::
TransitionResolution
resolveType
()
const
noexcept
37
{
38
// How to resolve QDateTime construction to favour the timeType parsed:
39
using
Res = QDateTime::TransitionResolution;
40
switch
(timeType) {
41
case
QDateTimePrivate::StandardTime:
return
Res::PreferStandard;
42
case
QDateTimePrivate::DaylightTime:
return
Res::PreferDaylightSaving;
43
case
QDateTimePrivate::UnknownDaylightTime:
return
Res::LegacyBehavior;
44
}
45
Q_UNREACHABLE_RETURN(Res::LegacyBehavior);
46
}
47
};
48
49
constexpr
QtTemporalPattern
::
TemporalFieldFlags
AnyOffsetForm
{
50
QtTemporalPattern
::
TemporalFieldFlag
::
Numeric
};
51
constexpr
QtTemporalPattern
::
TemporalFieldFlags
AnyGlobalZoneName
{
52
QtTemporalPattern
::
TemporalFieldFlag
::
Verbal
53
|
QtTemporalPattern
::
TemporalFieldFlag
::
Standalone
};
54
55
// Corresponding to QDTP::findTimeZone's modes (count('t') in Qt format field):
56
constexpr
QtTemporalPattern
::
TemporalFieldFlags
AnyZoneName
{
57
AnyGlobalZoneName
|
QtTemporalPattern
::
TemporalFieldFlag
::
LocalTimeName
};
// mode 4
58
constexpr
QtTemporalPattern
::
TemporalFieldFlags
BasicColonDigitOffset
{
// mode 3
59
QtTemporalPattern
::
TemporalFieldFlag
::
Numeric
60
|
QtTemporalPattern
::
TemporalFieldFlag
::
Abbreviated
61
|
QtTemporalPattern
::
TemporalFieldFlag
::
Narrow
};
62
// TODO: distinguish modes 2 and 3
63
constexpr
QtTemporalPattern
::
TemporalFieldFlags
BasicDigitOnlyOffset
{
// mode 2
64
QtTemporalPattern
::
TemporalFieldFlag
::
Numeric
65
|
QtTemporalPattern
::
TemporalFieldFlag
::
Abbreviated
66
|
QtTemporalPattern
::
TemporalFieldFlag
::
Narrow
};
67
constexpr
QtTemporalPattern
::
TemporalFieldFlags
AllLegacyForm
{
// mode 1
68
QtTemporalPattern
::
TemporalFieldFlag
::
AllowZSuffix
|
BasicDigitOnlyOffset
|
BasicColonDigitOffset
69
|
QtTemporalPattern
::
TemporalFieldFlag
::
Wide
70
|
QtTemporalPattern
::
TemporalFieldFlag
::
Short
|
AnyZoneName
};
71
constexpr
QtTemporalPattern
::
TemporalFieldFlags
AnyGlobalZoneForm
{
72
QtTemporalPattern
::
TemporalFieldFlag
::
AllowZSuffix
|
AnyOffsetForm
|
AnyGlobalZoneName
};
73
constexpr
QtTemporalPattern
::
TemporalFieldFlags
AnyZoneForm
{
74
QtTemporalPattern
::
TemporalFieldFlag
::
AllowZSuffix
|
AnyOffsetForm
|
AnyZoneName
};
75
76
// Parsing functions return lists, sorted with "better" matches earlier; for
77
// now, longer is better.
78
79
Q_AUTOTEST_EXPORT
// so that we can test it
80
QList
<
ParsedZone
>
prefix
(
QStringView
text
,
const
QLocale
&
locale
,
qsizetype
from
= 0,
81
QtTemporalPattern
::
TemporalFieldFlags
flags
=
AnyZoneForm
);
82
// QList<ParsedZone> find(QStringView text, const QLocale &locale, qsizetype from = 0,
83
// QtTemporalPattern::TemporalFieldFlags flags = AnyZoneForm);
84
}
// QtParseTimeZone
85
86
QT_END_NAMESPACE
87
88
#
endif
// QPARSE_TIMEZONE_P_H
QtParseTimeZone
A toolset for parsing time zone identification strings.
Definition
qtparsetimezone.cpp:353
QtParseTimeZone::AnyGlobalZoneForm
constexpr QtTemporalPattern::TemporalFieldFlags AnyGlobalZoneForm
Definition
qtparsetimezone_p.h:71
QtParseTimeZone::AnyZoneName
constexpr QtTemporalPattern::TemporalFieldFlags AnyZoneName
Definition
qtparsetimezone_p.h:56
QtParseTimeZone::AllLegacyForm
constexpr QtTemporalPattern::TemporalFieldFlags AllLegacyForm
Definition
qtparsetimezone_p.h:67
QtParseTimeZone::BasicDigitOnlyOffset
constexpr QtTemporalPattern::TemporalFieldFlags BasicDigitOnlyOffset
Definition
qtparsetimezone_p.h:63
QtParseTimeZone::AnyZoneForm
constexpr QtTemporalPattern::TemporalFieldFlags AnyZoneForm
Definition
qtparsetimezone_p.h:73
QtParseTimeZone::AnyOffsetForm
constexpr QtTemporalPattern::TemporalFieldFlags AnyOffsetForm
Definition
qtparsetimezone_p.h:49
QtParseTimeZone::AnyGlobalZoneName
constexpr QtTemporalPattern::TemporalFieldFlags AnyGlobalZoneName
Definition
qtparsetimezone_p.h:51
QtParseTimeZone::BasicColonDigitOffset
constexpr QtTemporalPattern::TemporalFieldFlags BasicColonDigitOffset
Definition
qtparsetimezone_p.h:58
QT_REQUIRE_CONFIG
QT_REQUIRE_CONFIG(datetimeparser)
QtParseTimeZone::ParsedZone
Describes a text fragment representing a timezone.
Definition
qtparsetimezone_p.h:32
QtParseTimeZone::ParsedZone::zone
QTimeZone zone
Definition
qtparsetimezone_p.h:33
QtParseTimeZone::ParsedZone::timeType
QDateTimePrivate::DaylightStatus timeType
Definition
qtparsetimezone_p.h:34
QtParseTimeZone::ParsedZone::resolveType
constexpr QDateTime::TransitionResolution resolveType() const noexcept
Definition
qtparsetimezone_p.h:36
qtbase
src
corelib
parse
qtparsetimezone_p.h
Generated on
for Qt by
1.18.0