代码先锋网 代码片段及技术文章聚合

QML基础十:QML日期类型Date

技术标签: QML  qml

引言

用了N年的QWidget,因为项目需求而开始学习QML做一些动态的界面,下面开始记录学习QML的新路历程。
注:学习有误的望指点一二,不喜勿喷!!!

日期类型Date

方法:

  • string fromLocaleDateString(locale, dateString, format)
  • string fromLocaleString(locale, dateTimeString, format)
  • string fromLocaleTimeString(locale, timeString, format)
  • string timeZoneUpdated()
  • string toLocaleDateString(locale, format)
  • string toLocaleString(locale, format)
  • string toLocaleTimeString(locale, format)

详细说明

QML Date扩展了JavaScript Date Object相应的功能函数。
语言环境格式枚举包含以下:(语言环境locale是由ANSI C提供支持,命名规则为语言_地域.字符集,如:zh_CN.GBK,z代表中文,CH代表大陆地区,GBK表示字符集)

  • Locale.LongFormat
    字符串的全拼格式,例如:"January"作为月份
  • Locale.ShortFormat
    字符串简写格式,例如:“Jan”作为月份
  • Locale.NarrowFormat
    当显示空间有限时使用的特殊格式,例如:“J”作为月份

或者通过设置字符串格式:

格式 输出
d 日期数字,不带前置零(1到31)
dd 日期数字,带前置零(01到31)
ddd 简化版本地日期名称(Mon-Sun)
dddd 全拼本地日期名称(Monday-Sunday)
M 月数,不带前置零(1到12)
MM 月数,带前置零(01到12)
MMM 简化版本地月数(Jan-Dec)
MMMM 全拼版本地月数(January-December)
y 后两位数的年份
yyyy 四位数的年份

所有其他输入的字符都将被忽略。用单引号引起来的任何字符都将视为普通文本,而在输出中,两个连续的单引号会被一个单引号替换。
字符串格式示例:(2020年7月10日)

格式 输出
dd.MM.yyyy 10.07.2020
ddd MMMM d yy Fri July 10 20
‘The day is’ dddd The day is Friday

时间格式化表达式:

表达式 输出
h 不带前置零的时(如果显示AM/PM,则为0-23或者1-12)
hh 带前置零的时(如果显示AM/PM,则为00-23或者01-12)
H 不带前置零的时(0-23)
HH 带前置零的时(00-23)
m 不带前置零的分(0-59)
mm 带前置零的分(00-59)
s 不带前置零的秒(0-59)
ss 带前置零的秒(00-59)
z 不带前置零的毫秒数(0-999)
zzz 带前置零的毫秒数(000-999)
AP or A 区分上下午,AP将被"AM"或“PM”替换
ap or a 区分上下午,ap将被“am”或“pm”替换
t 时区(例如“CEST”)

时间格式字符串示例:

格式 输出
hh:mm:ss.zzz 14:13:09.042
hⓂ️s ap 2:13:9 pm
HⓂ️s a 14:13:9 pm

如果日期无效,则返回一个空字符串

方法介绍

  • string fromLocaleDateString(locale, dateString, format)
    指定语言环境locale和输入格式format,将日期字符串转换成Dat对象
    如果未指定格式format,则将使用Locale.LongFormat
    如果未指定语言环境locale,则使用默认环境。
    下面的示例显示当前日期,首先使用默认的语言环境和格式将其格式化日期字符串,然后以相同的方式再解析
import  QtQml 2.0

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

    ComponentComponent.onCompleted: {: {
        dateString = currentDate.toLocaleDateString();();
        print(Dateprint(Date.fromLocaleDateString(dateString));(dateString));
    }}
}}
  • string fromLocaleString(locale, dateTimeString, format)
    指定语言环境和格式,将datetime字符串转换成Date对象
    如果未指定格式format,则将使用Locale.LongFormat
    如果未指定语言环境locale,则使用默认环境。
    下面的示例显示使用默认语言环境从日期时间字符串中以某种格式解析的日期实现:
import  QtQml 2.0

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

    ComponentComponent.onCompleted: {: {
        print(Dateprint(Date.fromLocaleString(locale(locale, dateTimeString, "ddd yyyy-MM-dd hh:mm:ss"));
    }}
}}
  • string fromLocaleTimeString(locale, timeString, format)
    之定义语言环境和格式将时间字符串转换成Data对象。
    如果未指定格式format,则将使用Locale.LongFormat
    如果未指定语言环境locale,则使用默认环境。
    以下示例显示当前时间,首先使用默认语言环境和ShortFormat将其格式化为时间字符串,然后以相同的方式再解析回Date对象。
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以UT时间存储Date对象,在对日期组件的所以操作都设计到UTC当前偏移量。如果当前偏移量由于时区的改变而更新,则需要通知JS引擎,以便它可以重新计算偏移量。(偏移量是由于不同的时区导致的)
    在更新系统的时区后,应调用此函数。
    如下实例所示,更改时区的程序在设置新时区后,将调用该函数:
property string selectedTimeZone

onSelectedTimeZoneChanged: {
    MyFunctions.setSystemTimeZone(selectedTimeZone)
    Date.timeZoneUpdated()
}
  • string toLocaleDateString(locale, format)
    将Date转换为适用于指定语言环境和格式的日期字符串。
    如果未指定格式format,则将使用Locale.LongFormat
    如果未指定语言环境locale,则使用默认环境。
    以下示例显示了德语区域设置的当前日期格式:
import QtQuick 2.0

Text {
    text: "The date is: " + new Date().toLocaleDateString(Qt.locale("de_DE"))
}
  • string toLocaleString(locale, format)
    将Date转换为包含指定格式的,适用于指定语言环境的日期+时间的字符串。
    如果未指定格式format,则将使用Locale.LongFormat
    如果未指定语言环境locale,则使用默认环境。
    以下示例显示了德语语言环境下当前日期和时间格式字符串:
import QtQuick 2.0

Text {
    text: "The date is: " + new Date().toLocaleString(Qt.locale("de_DE"))
}
  • string toLocaleTimeString(locale, format)
    将Date转换为包含以指定格式,并适用于指定语言环境的时间字符串。
    如果未指定格式format,则将使用Locale.LongFormat
    如果未指定语言环境locale,则使用默认环境。
    以下示例显示了指定德语语言环境的当前时间:
import QtQuick 2.0

Text {
    text: "The date is: " + new Date().toLocaleTimeString(Qt.locale("de_DE"))
}
版权声明:本文为fengyanyu68原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/fengyanyu68/article/details/107364080

智能推荐

QML基础类型之real

带小数点的数字。 实型是指带小数点的数字,例如 1.2或-29.8。 例: 注意:在QML中,所有实数都以双精度IEEE浮点格式存储。...

QML基础类型之point

具有x和y属性的值。 点类型是指具有x和y属性的值。 要创建点值,请将其指定为“ x,y”字符串: 或使用Qt.point()函数: 与C ++集成时,请注意,从C ++传递到QML的任何QPoint或QPointF值都会自动转换为点值。 将点值传递给C ++时,它会自动转换为QPointF值。...

QML基础类型之palette

调色板。 调色板类型是指各种角色的颜色调色板。 可用属性:...

QML基础类型之list

QML对象列表。 列表类型是指QML对象的列表。 可以通过类似于JavaScript数组的方式访问列表值: 使用[]方括号语法和逗号分隔值来分配值 length属性提供列表中的项目数 使用[index]语法访问列表中的值 可以使用push方法将值动态添加到列表中,就像它是JavaScript数组一样 列表只能存储QML对象,并且不能包含任何基本类型值。 (要在列表中存储基本类型,请改用var类型。...

QML基础类型之int

整数,例如 0、10或-20。 int类型是指整数,例如 0、10或-20。 可能的int值范围从-2000000000到2000000000左右,尽管大多数类型将只接受减小的范围 例:...

猜你喜欢

QML基础类型之geoshape

几何形状类型代表抽象地理区域。 此类型是QGeoShape的QML表示形式,它是一个抽象的地理区域。 它包括所有地理区域共有的属性和方法。 要创建代表有效地理区域的对象,请使用georectangle或geocircle。 isValid属性可用于测试地理形状是否表示有效的地理区域。 isEmpty属性可用于测试几何形状是否表示几何区域为0的区域。 contains()方法可用于测试坐标是否在几何...

QML基础类型之variant

通用属性类型。 变量类型是通用属性类型。它已过时,仅用于支持旧应用程序。新应用程序应改用var类型属性。 变量类型属性可以保存任何基本类型值: 与C ++集成时,请注意,从C ++传递到QML的任何QVariant值都会自动转换为变量值,反之亦然。 将稀缺资源与变体类型一起使用 变体类型属性也可以保存图像或像素图。包含QPixmap或QImage的变体被称为“稀缺资源”,声...

QML基础类型之var

通用属性类型。 var类型是通用属性类型,可以引用任何数据类型。 它等效于常规JavaScript变量。 例如,var属性可以存储数字,字符串,对象,数组和函数: 变更通知语义 重要的是要注意,分配给var属性的JavaScript对象的常规属性中的更改不会触发访问它们的绑定的更新。 下面的示例将显示“汽车有4个车轮”,因为车轮属性的更改不会导致重新评估分配给“...

QML基础类型之url

资源定位器。 url类型引用资源定位符(例如,文件名)。 它可以是绝对的,例如 “ http://qt-project.org”或相对名称,例如 “ pics / logo.png”。 相对URL相对于包含组件的URL进行解析。 例如,以下内容将有效的URL分配给Image :: source属性,其类型为url: 当相对URL写入url type属...

QML基础类型之string

自由格式的文本字符串。 字符串类型是指带引号的自由格式文本字符串,例如 “你好,世界!”。 例: 字符串具有一个length属性,该属性保存字符串中的字符数。 QML使用arg()函数扩展了JavaScript String类型,以支持值替换。 与C ++集成时,请注意,从C ++传递到QML的任何QString值都会自动转换为字符串值,反之亦然。...