QDate 理论使用总结

  • 一、概述
  • 二、使用
    • 1. 创建对象
    • 2. 时间差值计算
    • 3. 日期和字符串互转
  • 三、注意

一、概述

QDate对象表示一个特定的日期。这可以用公历的日期来表示,即年、月和日的数字。QDate提供了一套完整的操作符来比较两个QDate对象,较小的表示较早,较大的表示较晚。

二、使用

1. 创建对象

QDate对象通常通过显式地给出年、月和日的数字来创建。注意,QDate将小于100的年份解释为年份1 ~ 99,不会增加任何偏移量。静态函数currentDate()创建一个QDate对象,其中包含从系统时钟读取的日期。

也可以使用setDate()来设置显式的日期。fromString()函数返回一个给定字符串和日期格式的QDate对象,用于解析字符串中的日期。
函数year()、month()和day()提供了对年、月和日的访问。此外,还提供了dayOfWeek()和dayOfYear()函数。

2. 时间差值计算

使用addDays()可以将日期增加(或减少)给定的天数。类似地,你可以使用addMonths()和addYears()。daysTo()函数返回两个日期之间的天数。

  QDate d1(1995, 5, 17);  // May 17, 1995QDate d2(1995, 5, 20);  // May 20, 1995d1.daysTo(d2);          // returns 3d2.daysTo(d1);          // returns -3

daysInMonth() 和 daysInYear() 函数分别返回日期中的月和年有多少天。函数 isLeapYear() 用于确定日期是否属于闰年。

3. 日期和字符串互转

字符模式 含义
d 以数字开头的日期(1到31)
dd 以0开头的数字表示的日期(01到31)
ddd 缩写的本地化日名称(例如。‘Mon’到‘Sun’)。使用系统区域设置本地化名称,即QLocale::system()。
dddd 长本地化的日期名称(例如:“周一”到“周日”)。使用系统区域设置本地化名称,即QLocale::system()。
M 以数字开头的月份(1到12)
MM 以0开头的数字表示的月份(01到12)
MMM 缩写的本地化月份名称(例如。‘Jan’到‘Dec’)。使用系统区域设置本地化名称,即QLocale::system()。
MMMM 长本地化月份名称(例如:“一月”到“十二月”)。使用系统区域设置本地化名称,即QLocale::system()。
yy 以两位数表示的年份(00到99)
yyyy 四位数的年份。如果年份是负数,则在前面加上一个减号,总共5个字符。

注意:
用单引号括起来的任何字符序列都会原封不动地包含在输出字符串中(去掉引号),即使其中包含格式化字符。在输出中,两个连续的单引号(" " ")被替换为单引号。格式字符串中的所有其他字符都将逐字包含在输出字符串中。
没有分隔符的格式(例如:“ddMM”)是支持的,但必须谨慎使用,因为结果字符串并不总是可靠可读的(例如,如果“dM”产生“212”,它可能意味着12月2日或2月21日)。

1. 日期转字符串

  • QString QDate::toString(const QString &format)

如果 这个 QDate 对象是 1969年7月20号,不同Format 对呀的 结果就不一样

格式字符 结果
dd.MM.yyyy 20.07.1969
ddd MMMM d yy Sun July 20 69
‘The day is’ dddd The day is Sunday

1. 字符串转日期

  • QDate QDate::fromString(const QString &string, const QString &format, QCalendar cal)

在这个填充年月日的时候,会有一个默认值,
Year :1900
Month :1
Day :1

就像下面的 QDate::fromString(“1.30”, “M.d”); 缺失 年份,就补的默认 1900
看例子

QDate date = QDate::fromString("1MM12car2003", "d'MM'MMcaryyyy");// date is 1 December 2003QDate date = QDate::fromString("130", "Md"); // 无效QDate::fromString("1.30", "M.d");           // January 30 1900
QDate::fromString("20000110", "yyyyMMdd");  // January 10, 2000
QDate::fromString("20000110", "yyyyMd");    // January 10, 2000

三、注意

  1. 没有年份0。该年的日期被认为是无效的。-1年是“前1年”或“前1年”。公元1月1日QDate(1,1,1)的前一天是公元前12月1日QDate(- 1,12,31)。

  2. 有效日期范围
    日期在系统内部存储为儒略日(Julian Day number),是连续范围内每天的整数计数,公历公元前4714年11月24日为儒略日0(儒略历公元前4713年1月1日)。它不仅是存储绝对日期的一种高效和准确的方法,还适用于将日期转换为其他日历系统,如希伯来历、伊斯兰历或中国历。儒略日可以通过QDate::toJulianDay()获得,也可以通过QDate::fromJulianDay()设置。
    由于技术原因,QDate能够以儒略日的形式存储的日期范围被限制在- 7843550574879和784354017364之间,这意味着从公元前20亿年前到公元20亿年后。

Qt扫盲-QDate使用总结相关推荐

  1. Qt扫盲- QTcpSocket 理论总结

    QTcpSocket 理论总结 一.概述 二.使用 一.概述 TCP (Transmission Control Protocol)是一种可靠的.面向流的.面向连接的传输协议.它特别适合于数据的连续传 ...

  2. Qt扫盲-QList使用总结

    QList使用总结 概述 一.QList 声明及初始化 1. 声明 QList 2. 初始化 QList 二.QList 基本的 增加.删除.移动.修改 1. 增加节点 2. 删除节点 3. 移动节点 ...

  3. Qt扫盲-QDebug理论总结

    QDebug理论使用总结 一.概述 二.使用 1. 基础使用 2. 格式化选项 3.将自定义类型写入流 一.概述 每当开发人员需要将调试或跟踪信息写入设备.文件.字符串或控制台时,都会使用QDebug ...

  4. Qt扫盲-QSS概述

    QSS概述 一.概述 二.详细 一.概述 QSS 其实是Qt样式表,Qt样式表是Qt界面的一种强大的机制,除了通过继承QStyle已经可以实现的功能外,它还允许您自定义窗口组件的外观.Qt样式表的概念 ...

  5. Qt扫盲-QSqlQuery理论总结

    QSqlQuery理论总结 一.概述 二.使用 1. 数据查询 2.查询参数绑定 3. 绑定值的方法 1. 使用命名占位符的命名绑定: 2. 使用命名占位符的位置绑定: 3. 使用位置占位符绑定值(版 ...

  6. Qt扫盲-网络编程概述

    网络编程概述 一.Qt网络编程概述 二.Qt对Http,FTP应用层协议支持 三.TCP通信编程支持 四.UDP通信编程支持 五.主机信息的获取 六.网络代理 七.底层管理的支持 一.Qt网络编程概述 ...

  7. Qt扫盲-QThread使用总结

    QThread理论使用总结 一.概述 二.使用方式 1. 方式一 2. 方式二 三.线程管理 1. 线程状态及信息 2. 线程退出 3. 线程休眠 一.概述 一个 QThread 管理程序中的一个线程 ...

  8. Qt扫盲-Qt Designer 设计师使用总结

    Designer 设计师使用总结 一.顶部菜单栏 1. 常用的菜单内容 2. 快捷工具栏说明 二.左侧控件栏 1. 组件分类 2. 筛选 三.中间绘图区 1. 左侧控件区拖放控件到中间 2. 中间区域 ...

  9. Qt扫盲-Assistant 助手使用总结

    Qt Assistant助手 使用记录 预备 一.顶部菜单栏 1. 快捷栏 2. 文件.前往.帮助 3. 查看-工具栏 4. 编辑-首选项 5. 书签 二.侧边菜单栏 1. 修改显示功能Bar 2. ...

最新文章

  1. ios 图片自动轮播
  2. 利用do文件方式进行modelsim仿真
  3. BS-GX-018 基于SSM实现在校学生考试系统
  4. Nginx系列~负载均衡服务器与WWW服务器的实现
  5. Developer FAQ: Building | 开发人员常遇到的问题:构建
  6. mysql 重试_重试MySQL/SQLAlchemy的死锁
  7. 三道小题带你了解SQL基本查询
  8. 日产汽车宣布已关停日、英、美、南非、俄等地工厂
  9. 漏洞扫描工具Vulmap
  10. 数据框的合并排序、描述统计、分箱
  11. 中华石杉-- --分布式服务框架Dubbo的笔记
  12. 快排 找第k大的数字
  13. Python配置清华软件安装源
  14. 5G网络架构与组网部署
  15. 公众号滑动图代码_微信公众号图文排版之图片滑动的新玩法
  16. SpringMVC(三)——响应
  17. 蓝桥杯 分割项链 Java
  18. 复合材料力学matlab,复合材料力学作业
  19. c语言在线测试题目及答案,《C语言考试题库及答案》.doc
  20. JSP JAVA javaweb仓库库存管理系统(仓库进销存管理系统库存管理系统仓库管理系统)

热门文章

  1. mtcnn人脸检测python_opencv+mtcnn+facenet+python+tensorflow 实现实时人脸识别
  2. EAUML日拱一卒 用例泛化关系
  3. 别再舔屏F4的颜了,淘宝这一次准备让F4清空你的购物车!
  4. 基于RGB-D相机的机械臂无序抓取系统
  5. DVWA靶场--文件上传漏洞(low、medium、high等级)
  6. 电子票据、版权保护——区块链破解行业痛点 | 链塔区块链产业年鉴精选
  7. WSY2021Linux第十一次上机作业
  8. 学画画真的很需要天赋吗,不一定看看他是怎么说的
  9. Python-学习笔记
  10. 树莓派scikit-image安装报错解决