当前位置: 首页 > news >正文

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

在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 对象的日期部分转换为字符串。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 人工智能与机器学习的相关介绍
  • 速盾:cdn防盗链
  • 【C++标准模版库】模拟实现vector+迭代器失效问题
  • Flume系列之:把flume配置写入到zookeeper节点
  • net 工控机 字节转换 字符,ToString 格式化
  • 前端HTML+CSS复习
  • AIGC平台创业启示录:从Airbnb的成功经验中汲取灵感
  • 反制攻击者-蚁剑低版本
  • 腾讯OCR签名算法
  • EDI是什么:EDI系统功能介绍
  • Depth Anything——强大的单目深度估计模型
  • 北京崇文门中医院贾英才主任解读头晕:症状与根源
  • [Unity] ShaderGraph实现DeBuff污染 溶解叠加效果
  • 数据结构初阶(c语言)-排序算法
  • idea插件反编译class文件
  • php的引用
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • Apache Zeppelin在Apache Trafodion上的可视化
  • canvas 绘制双线技巧
  • Fabric架构演变之路
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Redis在Web项目中的应用与实践
  • SegmentFault 2015 Top Rank
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 机器学习 vs. 深度学习
  • 漂亮刷新控件-iOS
  • 前端面试之CSS3新特性
  • 如何选择开源的机器学习框架?
  • 用Canvas画一棵二叉树
  • nb
  • 如何正确理解,内页权重高于首页?
  • ​io --- 处理流的核心工具​
  • ​经​纬​恒​润​二​面​​三​七​互​娱​一​面​​元​象​二​面​
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • # windows 安装 mysql 显示 no packages found 解决方法
  • #HarmonyOS:Web组件的使用
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • (02)vite环境变量配置
  • (function(){})()的分步解析
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .DFS.
  • .NET 8.0 发布到 IIS
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .net core 依赖注入的基本用发
  • .Net MVC4 上传大文件,并保存表单
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET开发不可不知、不可不用的辅助类(一)
  • .Net实现SCrypt Hash加密
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • @31省区市高考时间表来了,祝考试成功
  • @GetMapping和@RequestMapping的区别