QML中的Date将时间戳和指定格式时间互转

devtools/2024/11/9 17:08:20/

在QML中,可以通过使用JavaScript来处理日期和时间的转换,其中包括将时间戳转换为指定格式的时间字符串,以及将时间字符串解析为时间戳的操作。

将时间戳转换为指定格式的时间字符串

在QML中,可以通过JavaScript的Date对象来处理时间戳的转换。

import QtQuick 2.15
import QtQuick.Controls 2.15ApplicationWindow {visible: truewidth: 400height: 200title: "时间戳与格式化时间转换示例"function timestampToFormattedString(timestamp, format) {var date = new Date(timestamp * 1000); // 注意JavaScript中的时间戳是以毫秒为单位的return Qt.formatDateTime(date, format);}// 示例用的时间戳property var timestampValue: 1628027245; // 例如,这里的时间戳对应日期:2021-08-04 09:20:45Text {id: timestampTextanchors.centerIn: parenttext: "时间戳:" + timestampValue}Text {anchors.top: timestampText.bottomanchors.horizontalCenter: parent.horizontalCentertext: "格式化时间:" + timestampToFormattedString(timestampValue, "yyyy-MM-dd hh:mm:ss")}
}

解释

JavaScript函数 timestampToFormattedString:

timestampToFormattedString 函数将接受一个时间戳(单位为秒)和一个格式化字符串作为参数。
在函数内部,使用 new Date(timestamp * 1000) 将时间戳转换为JavaScript的Date对象。注意,在JavaScript中,时间戳是以毫秒为单位的,而在QML中通常是以秒为单位的,因此乘以1000来得到正确的毫秒时间戳。
使用 Qt.formatDateTime(date, format) 函数将Date对象格式化为指定的时间字符串。
timestampValue 属性定义了一个示例时间戳,这里使用了固定值,
Text 组件用于显示时间戳和转换后的格式化时间字符串。
将指定格式的时间字符串转换为时间戳
如果您需要将一个格式化的时间字符串转换为时间戳,您可以编写另一个JavaScript函数来实现这个功能。这通常涉及将时间字符串解析为Date对象,然后获取其对应的时间戳。

import QtQuick 2.15
import QtQuick.Controls 2.15ApplicationWindow {visible: truewidth: 400height: 200title: "格式化时间转换为时间戳示例"function formattedStringToTimestamp(formattedString, format) {var date = Qt.formatDateTime(formattedString, format);return date.getTime() / 1000; // 返回秒为单位的时间戳}// 示例用的格式化时间字符串property string formattedTimeString: "2021-08-04 09:20:45";Text {id: formattedTextanchors.centerIn: parenttext: "格式化时间:" + formattedTimeString}Text {anchors.top: formattedText.bottomanchors.horizontalCenter: parent.horizontalCentertext: "时间戳:" + formattedStringToTimestamp(formattedTimeString, "yyyy-MM-dd hh:mm:ss")}
}

解释

JavaScript函数 formattedStringToTimestamp:

formattedStringToTimestamp 函数接受一个格式化的时间字符串和对应的格式化字符串作为参数。
使用 Qt.formatDateTime(formattedString, format) 函数将格式化的时间字符串转换为Date对象。
使用 date.getTime() 获取Date对象的时间戳(毫秒),然后将其转换为秒单位的时间戳。
formattedTimeString 属性定义了一个示例格式化的时间字符串,这里使用了固定值
Text 组件用于显示格式化的时间字符串和转换后的时间戳。

当使用 JavaScript 中的 Date 对象时,以下是一些常用的日期和时间相关方法的总结:

getDate(): 返回一个月中的某一天 (1 ~ 31)。
getDay(): 返回一周中的某一天 (0 ~ 6),其中 0 表示星期日。
getMonth(): 返回月份 (0 ~ 11),其中 0 表示一月。
getFullYear(): 返回四位数字的年份。
getHours(): 返回小时 (0 ~ 23)。
getMinutes(): 返回分钟 (0 ~ 59)。
getSeconds(): 返回秒数 (0 ~ 59)。
getMilliseconds(): 返回毫秒数 (0 ~ 999)。
getTime(): 返回自 1970 年 1 月 1 日 00:00:00 UTC 起的毫秒数。
toString(): 将 Date 对象转换为字符串,返回包含完整日期和时间的字符串。
toTimeString(): 将 Date 对象的时间部分转换为字符串,返回时间字符串。
toDateString(): 将 Date 对象的日期部分转换为字符串,返回日期字符串。
toLocaleString(): 根据本地时间格式,将 Date 对象转换为字符串。
toLocaleTimeString(): 根据本地时间格式,将 Date 对象的时间部分转换为字符串。
toLocaleDateString(): 根据本地时间格式,将 Date 对象的日期部分转换为字符串。

http://www.ppmy.cn/devtools/91302.html

相关文章

连接投影仪/显示器只能扩展不能复制的解决方案

原文章:https://iknow.lenovo.com.cn/detail/121481 故障现象: 笔记本外接投影仪/显示器后,笔记本屏幕有显示,但投影仪却只有背景或没有显示; 原因分析: 此现象多发生在双显卡机型上,笔记本屏…

element-ui表格1.0.0.1,表格的属性

前言:基于vue2element-ui的理论转实践的使用 第一组:数据显示 利用v-bind:data在table绑定数据源,将数据利用prop的属性传入到table-column,渲染到表格中 正片开始 首先,常用的属性(作者常用&#xff09…

Python爬虫入门实战(详细步骤)

1. 技术选型 爬虫这个功能,我个人理解是什么语言都能写的,只要能正常发送 HTTP 请求,将响应回来的静态页面模版 HTML 上把我们所需要的数据提取出来就可以了,原理很简单,这个东西当然可以手动去统计收集,但…

算法笔记|Day19回溯算法

算法笔记|Day19回溯算法 ☆☆☆☆☆leetcode 77.组合题目分析代码 ☆☆☆☆☆leetcode 216.组合总和III题目分析代码 ☆☆☆☆☆leetcode 17.电话号码的字母组合题目分析代码 ☆☆☆☆☆leetcode 77.组合 题目链接:leetcode 77.组合 题目分析 组合问题是回溯法解…

ShardingSphere数据库分库分表中间件

ShardingSphere 数据库分库分表中间件 一款分布式的数据库生态系统,可以将任意的数据库转换为分布式数据库,并通过数据分片,弹性伸缩,加密等能力对原有的数据库进行增强 基于底层数据库提供分布式数据库解决方案 可以水平扩展计算和存储,使用ShardingSphere的数据分片即可实…

突破getimagesize()

在CTF(Capture The Flag)竞赛中,突破getimagesize()函数的限制是一种常见的技巧,用于绕过Web应用程序对上传文件的图像验证。getimagesize()是PHP中用于检查图像文件信息的一个函数,它被广泛用于Web应用中来验证上传的…

Spring-包扫描

一、doScan包扫描 V1.0 doScan 流程图 包扫描 1、根据配置的包扫名路径构建出Beandefinition 2、循环构建出的BeanDefinition集合 3、获取ScopeMetadata元数据读取器 4、对beandefinition进行赋值 5、返回所有的beandefinition protected Set<BeanDefinitionHolder> do…

SpringBoot快速学习

目录 SpringBoot配置文件 多环境配置 SpringBoot整合junit SpringBoot整合mybatis 1.在创建时勾选需要的模块 2.定义实体类 3.定义dao接口 4.编写数据库配置 5.使用Druid数据源 SpringBoot 是对 Spring 开发进行简化的。 那我们先来看看SpringMVC开发中的一些必须流…