Locale
一、描述
此类型提供特定于语言环境的属性和格式化数据。
Locale 对象只能通过 Qt.locale() 函数创建。不能直接创建。
Qt.locale() 函数返回一个 JS Locale 对象,表示具有指定名称的语言环境,其格式为“language[_territory][.codeset][@modifier]”或“C”。
支持默认区域设置的概念,默认区域设置由应用程序启动时系统的区域设置确定。如果没有参数传递给 Qt.locale(),则返回默认的语言环境对象。
二、属性成员
1、amText : string
使用 12 小时制的时间的“AM”后缀的本地化名称。
2、decimalPoint : string
小数点字符。
3、exponential : string
指数字符。
4、firstDayOfWeek : enumeration
一周的第一天。
- Locale.Sunday = 0
- Locale.Monday = 1
- Locale.Tuesday = 2
- Locale.Wednesday = 3
- Locale.Thursday = 4
- Locale.Friday = 5
- Locale.Saturday = 6
5、groupSeparator : string
组分隔符。
6、measurementSystem : enumeration
测量的单位。
- Locale.MetricSystem:公制单位,例如米、厘米和毫米。
- Locale.ImperialUSSystem:英制单位,例如在美国使用的英寸和英里。
- Locale.ImperialUKSystem:英制单位,例如在英国使用的英寸和英里。
- Locale.ImperialSystem:提供兼容性。 与 Locale.ImperialUSSystem 相同。
7、name : string
将此语言环境的语言和国家/地区保存为“language_country”形式的字符串,其中语言是小写的两个字母的 ISO 639 语言代码,国家是大写的两个或三个字母的 ISO 3166 国家代码。
8、nativeCountryName : string
国家的本地名称。
9、nativeLanguageName : string
语言的本地名称。
10、negativeSign : string
负号字符。
11、numberOptions : enumeration
包含一组用于数字到字符串和字符串到数字转换的选项。
12、percent : string
百分比字符。
13、pmText : string
使用 12 小时制的时间的“PM”后缀的本地化名称。
14、positiveSign : string
正号字符。
15、textDirection : enumeration
语言的文本方向。
- Qt.LeftToRight
- Qt.RightToLeft
16、uiLanguages : Array<string>
按优先顺序返回用于翻译目的的语言环境名称的有序列表。
返回值表示用户希望在其中看到 UI 翻译的语言环境名称。
17、weekDays : Array<int>
根据当前语言环境被视为工作日的天数组,其中星期日为 0,星期六为 6。
18、zeroDigit : string
零位字符。
三、成员函数
1、string currencySymbol(format)
返回指定格式的货币符号:
- Locale.CurrencyIsoCode:货币的 ISO-4217 代码。
- Locale.CurrencySymbol:货币符号。
- Locale.CurrencyDisplayName:货币名称。
2、string dateFormat(type)
string dateTimeFormat(type)
返回用于当前语言环境的日期、日期时间格式。type 指定要返回的 FormatType。见下面的 Date。
3、string dayName(day, type)
以 type 指定的可选 FormatType 返回当天的本地化名称(day参数 0 代表星期日,1 代表星期一,依此类推)。
4、string formattedDataSize(int bytes, int precision, DataSizeFormat format)
将字节大小转换为可读的本地化字符串。见 QLocale::formattedDataSize()。
5、string monthName(month, type)
以 type 指定的可选 FormatType 返回月份的本地化名称 (0-11)。
6、string standaloneDayName(day, type)
返回作为独立文本使用的日期的本地化名称(其中 0 代表星期日,1 代表星期一,依此类推),采用由 type 指定的 FormatType。
如果语言环境信息未指定独立日期名称,则返回值与 dayName() 中的相同。
7、string standaloneMonthName(month, type)
返回用作独立文本的月份的本地化名称 (0-11),采用 type 指定的可选 FormatType。
如果语言环境信息未指定独立月份名称,则返回值与 monthName() 中的相同。
8、string timeFormat(type)
返回用于当前语言环境的时间格式。type 指定要返回的 FormatType。
Date
一、描述
Date 对象使用区域(Locale)设置功能扩展了 JS Date 对象。
二、格式化枚举值
当需要与区域设置首选项匹配的格式时,使用枚举值:
- Locale.LongFormat:更长的格式
- Locale.ShortFormat:更短的格式
- Locale.NarrowFormat:在上下文中与 Locale.ShortFormat 相同
枚举表示的格式将取决于语言环境,但也取决于使用枚举的方法。
例如,对于 en_US 语言环境,使用以下格式字符串:
三、成员函数
1、string fromLocaleDateString(locale, dateString, format)
使用语言环境和格式将日期字符串 dateString 转换为 Date 对象。
如果未指定格式,将使用 Locale.LongFormat。
如果未指定区域设置,将使用默认区域设置。
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));
}
}
2、string fromLocaleString(locale, dateTimeString, format)
使用语言环境和格式将日期时间字符串 dateTimeString 转换为 Date 对象。
如果未指定格式,将使用 Locale.LongFormat。
如果未指定区域设置,将使用默认区域设置。
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"));
}
}
3、string fromLocaleTimeString(locale, timeString, format)
使用语言环境和格式将时间字符串 timeString 转换为 Date 对象。
如果未指定格式,将使用 Locale.LongFormat。
如果未指定区域设置,将使用默认区域设置。
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));
}
}
4、string timeZoneUpdated()
通知 JS 引擎系统的时区已更改,这是正确操作日期时间数据所必需的。
此函数应在系统时区更新后调用。
更改时区的应用程序将在设置新时区后调用 timeZoneUpdated():
property string selectedTimeZone
onSelectedTimeZoneChanged: {
MyFunctions.setSystemTimeZone(selectedTimeZone)
Date.timeZoneUpdated()
}
5、string toLocaleDateString(locale, format)
将 Date 转换为包含指定格式的指定区域设置的日期的字符串。
如果未指定格式,将使用 Locale.LongFormat。
如果未指定区域设置,将使用默认区域设置。
import QtQuick 2.0
Text {
text: "The date is: " + new Date().toLocaleDateString(Qt.locale("de_DE"))
}
6、string toLocaleString(locale, format)
将 Date 转换为包含指定格式的指定区域设置的日期和时间的字符串。
如果未指定格式,将使用 Locale.LongFormat。
如果未指定区域设置,将使用默认区域设置。
import QtQuick 2.0
Text {
text: "The date is: " + new Date().toLocaleString(Qt.locale("de_DE"))
}
7、string toLocaleTimeString(locale, format)
将 Date 转换为包含指定格式的指定区域设置的时间的字符串。
如果未指定格式,将使用 Locale.LongFormat。
如果未指定区域设置,将使用默认区域设置。
import QtQuick 2.0
Text {
text: "The date is: " + new Date().toLocaleTimeString(Qt.locale("de_DE"))
}