此小结学习日期、时间、定时器、时间编辑类的相关函数。

一、QDate

查看帮助文档可见:

QDATE类提供日期函数:QDATE对象包含公历中的日历日期,即年、月和日数。它可以从系统时钟读取当前日期。它提供了比较日期和操作日期的功能。例如,有可能添加和减去日期、月份和年份,具体如下:

QDate相关函数
返回值类型 函数名 说明
  QDate(int y, int m, int d) 日期类对象通过指定的年月日实现如: QDate date(2025,1,1)
QDate  addDays(qint64 ndays) const 添加n天之后的日期,n可以为负数
QDate  addMonths(int nmonths) const 添加n月之后的日期,n可以为负数
QDate  addYears(int nyears) const 添加n年之后的日期,n可以为负数
qint64 daysTo(const QDate & d) const 返回两个日期的间隔天数;小日期在前,否则结果为负数
int  day() const 返回日期为该月的第几天; 返回0:日期出错
int  dayOfWeek()  const返回日期为该星期的第几天(星期几); 返回0:日期出错
int  dayOfYear() const 返回日期为该年的第几天; 返回0:日期出错
int  daysInMonth()  const返回该月的天数 28-31; 返回0:日期出错
int  daysInYear() const 返回该年的天数 365/366; 返回0:日期出错
QDate 静态成员函数类可直接调用:static currentDate() 获取当前的日期
QDate  static fromJulianDay(qint64 jd) 从JulianDay的日期转为QDate
QDate static fromString(const QString & string, const QString & format) 从字符串按照指定规则生成QDate
bool static isLeapYear(int year) 判断是否为闰年
bool  static isValid() const 判断日期是否正确
bool static isValid(int year, int month, int day) 给定年月日,判断日期是否正确

查看帮助文档可见:

QDate d1(1995, 5, 17);  // May 17, 1995
QDate d2(1995, 5, 20);  // May 20, 1995
d2.daysTo(d1);          // returns -3
d1.daysTo(d2);          // returns 3QDate::fromString("20000110", "yyyyMMdd");  // January 10, 2000
QDate::fromString("1.30", "M.d");           // January 30 1900
QDate::isValid(2002, 5, 17);  // true
QDate::fromString("20000110", "yyyyMd");    // January 10, 2000QDate::isValid(2000, 2, 29);  // true (2000 is a leap year)
QDate::isValid(2002, 2, 30);  // false (Feb 30 does not exist)
QDate::isValid(2004, 2, 29);  // true (2004 is a leap year)
QDate::isValid(2100, 2, 29);  // false (2100 is not a leap year)
QDate::isValid(2006, 2, 29);  // false (2006 is not a leap year)
QDate::isValid(1202, 6, 6);   // true (even though 1202 is pre-Gregorian)

QDate显示格式

表达式

说明

d

天数用 (1到 31)表示

dd

天数用(01到31)表示

ddd

天数用英文简写表示 ( 'Mon' to 'Sun')

dddd

天数用英文全写表示( 'Monday' to 'Sunday')

M

月数用 (1到 12)表示

MM

月数用(01到12)表示

MMM

月数用英文简写表示 ('Jan' to 'Dec')

MMMM

月数用英文全写表示 ( 'January' to 'December')

yy

年数用 (00 to 99)表示

yyyy

年数用四位数表示。如果年份为负数,则减去负号。

查看帮助文档可见:

Format

Result

dd.MM.yyyy

20.07.1969

ddd MMMM d yy

Sun July 20 69

'The day is' dddd

The day is Sunday

二、QTime

查看帮助文档可见:

QTIME类提供时钟时间函数。QTIME对象包含时钟时间,即从午夜开始的小时数、分钟数、秒数和毫秒数。它可以从系统时钟读取当前时间并测量经过的时间跨度。它提供了用于比较时间和通过添加毫秒来操纵时间的功能。QTIME使用24小时时钟格式,它没有AM/PM的概念。与QDateTime不同的是,QTime没有时区或夏令时概念。

返回值类型

函数名

说明

QTime()

构造一个时间为0的对象

QTime(int h, int m, int s = 0, int ms = 0)

构造一个具有初始时间的对象

QTime

addMSecs(int ms) const

在当前时间基础上增加ms毫秒,ms可为负

QTime

addSecs(int s) const

在当前时间基础上增加s秒,s可为负

int

hour() const

返回小时数

int

minute() const

返回分钟数

int

second() const

返回秒

int

msec() const

返回毫秒

int

elapsed() const

计算与最近一次呼叫start()或者restart()函数间隔的毫秒数,相当于计时器

int

restart()

将当前系统时间记录为当前时间,并返回距离上次呼叫start()或者restart()函数间隔的毫秒数

int

msecsTo(const QTime & t) const

计算距离时间t的毫秒数,如果t早于当前时间,则为负

int

secsTo(const QTime & t) const

计算距离时间t的秒数

bool

setHMS(int h, int m, int s, int ms = 0)

设置标准HMS时间,如果不符合标准,返回false

QString

toString(const QString & format) const

将时间转化为字符串格式

void

start()

将当前系统时间记录为当前时间

bool

static isValid(int h, int m, int s, int ms = 0)

判断输入的时间是否有效

bool

static isValid() const

判断当前对象的时间是否有效

QString

static toString(Qt::DateFormat format = Qt::TextDate) const

按照Qt::DateFormat的格式转化

QTime

static fromString(const QString & string, Qt::DateFormat format = Qt::TextDate)

从Qt::DateFormat转化为QTime对象

QTime

static fromString(const QString & string, const QString & format)

从字符串格式转化为QTime对象

QTime

static currentTime()

得到当前的系统时间

Expression

Output

h

the hour without a leading zero (0 to 23 or 1 to 12 if AM/PM display)

hh

the hour with a leading zero (00 to 23 or 01 to 12 if AM/PM display)

m

the minute without a leading zero (0 to 59)

mm

the minute with a leading zero (00 to 59)

s

the second without a leading zero (0 to 59)

ss

the second with a leading zero (00 to 59)

z

the milliseconds without leading zeroes (0 to 999)

zzz

the milliseconds with leading zeroes (000 to 999)

AP

使用 AM/PM时间

ap

使用 AM/PM时间

QTime time(18,8,9,30);//设置时间为18时8分9秒30毫秒
QString time1 = time.toString("hh:mm:ss.zzz");//结果为18:08:09.030
QString time2 = time.toString("h:m:s.z");//结果为18:8:9.30
QString time3 = time.toString("h:m:s.z AP");//结果为6:8:9.30 PM
QString time4 = time.toString("h:m:s.z ap");//结果为6:8:9.30 pmQString QTime::toString(Qt::DateFormat f = Qt::TextDate) const
//按照参数format指定的格式用字符串形式输出当前时间对象的时间.
//参数的可选值:
Qt::TextDate:格式为HH:MM:SS
Qt::ISODate:遵循ISO8601的时间表示格式,同样也为HH:MM:SS
Qt::LocalDate:字符串格式依赖系统本地设置QTime QTime::fromString(const QString &string, Qt::DateFormat format = Qt::TextDate)
//使用参数format指定的格式根据参数string指定的时间返回一个时间对象。如果string指定的时间不合法,则返回一个无效的时间对象。
//format可选值:
Qt::TextDate:格式为HH:MM:SS
Qt::ISODate:遵循ISO8601的时间表示格式,同样也为HH:MM:SS
Qt::LocalDate:字符串格式依赖系统本地设置

三、QDateTime

顾名思义,QDateTime是类QDate和类QTime的相结合,它可以从系统时钟中读取当前日期时间。它提供比较日期时间和操作日期时间的函数,比如加上一定数量的秒、天、月或年。

和QDate相比可以设置时区属性:setTimeZone(const QTimeZone &toZone)

四、QTimer

QTimer是一个计时器类

它的使用分三步,创建对象,连接signal和slot函数,start()

 QTimer *timer = new QTimer(this);connect(timer, SIGNAL(timeout()), this, SLOT(update()));//系统调用update函数重绘界面,也可以写自定义的槽函数timer->start(1000);

其中,SIGNAL(timeout())表示:每当计时结束,计时器归零并重新计时,并发送一个信号激活slot函数。
而 timer->start(1000);当中的1000,就是1000毫秒的意思,表示每次timeout的时间间隔是1000ms

如果我们想让这个计时器只计时一次,那么必须使用void setSingleShot(bool singleShot)函数。

QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->setsetSingleShot(true)
timer->start(60000);

这样计时器只会倒计时1分钟,然后结束。

当然我们还可以改变计时周期

void setInterval(int msec) QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->start(1000);

五、QDateEdit、QTimeEdit、QDateTimeEdit

QDateEdit和QTimeEdit均继承自QDateTimeEdit,许多特性和功能都有QDateTimeEdit提供。这些都是相关属性,它们用来编辑日期和时间:
如QDateEdit主要一下函数:
(1) date:保存了部件的显示日期。
(2) minimumDate:定义了用户可以设置的最小日期。
(3) maximumDate:定义了用户可以设置的最大日期。
(4) displayFormat:包含了一个字符串用于格式化日期。

Qt由入门到放弃-QDate、QTime、QDateTime的相关函数相关推荐

  1. Qt从入门到放弃_0x01:建立项目

    一.用QtCreator搞事情 1.打开QtCreator 蹦出来的界面长下面这个样子: 跟着红框框标注的顺序走. 1.打开一个新的工程: 2.从目录中选择一个工程打开,支持下面这些文件格式,当然一般 ...

  2. Qt从入门到放弃——信号和槽机制(SigalSlot)

    标题信号和槽概念 Qt提供了信号和槽机制用于完成界面操作的响应,信号和槽机制是完成任意两个Qt对象之 间的通信机制.其中,信号会在某个特定情况或动作下被触发,槽是等同于接收并处理信号的函数. 例如,窗 ...

  3. VS集成Qt开发入门(简易时间显示)

    VS集成Qt开发入门(简易时间显示) 软件开发入门 开发环境 简单时间显示(LcdNumber) ui界面设计(clock.ui) 工程文件(clock.h,clock.cpp) 头文件clock.h ...

  4. Qt学习之Qt基础入门(下)

    1. 前言 前两篇博客简单的阐述了一下Qt的入门用法,这篇博客继续跟着视频学习. Qt入门系列: Qt学习之C++基础 Qt学习之Qt安装 Qt学习之Qt基础入门(上) Qt学习之Qt基础入门(中) ...

  5. QML 从入门到放弃

    发现了一个问题: QQuickView only supports loading of root objects that derive from QQuickItem. If your examp ...

  6. 《Python从入门到放弃》(Yanlz+Unity+SteamVR+云计算+5G+AI=VR云游戏=Python+PyCharm+人工智能+无人驾驶+数据可视化+人机交互+立钻哥哥+==)

    <Python从入门到放弃> <Python从入门到放弃> 版本 作者 参与者 完成日期 备注 YanlzAI_Python_V01_1.0 严立钻 2019.09.25 ## ...

  7. AI从入门到放弃2:CNN的导火索,用MLP做图像分类识别?

    来源 | 腾讯知乎专栏 作者 | AIoys(腾讯员工,后台工程师) 项目文档和代码在此:github项目地址: https://github.com/zsysuper/AI_Notes ▌一.前言 ...

  8. AOP埋点从入门到放弃(二)

    其实人最大悲哀莫过于知道自己想要什么,却不知道怎么坚持!最近迷恋上了死侍 其实和我平时的状态差不多,以一个混子的心态去做任何事情,往往成功的概率会更大!!! 一张图片镇楼!!! 上文说到了Aspect ...

  9. 入门到放弃node系列之网络模块(二)

    为什么80%的码农都做不了架构师?>>>    前言 本文首发[一名打字员] 上一节我们刚刚介绍完node的HTTP和HTTPS模块,相信我们也对nodejs有了更深层次的理解,接下 ...

最新文章

  1. poj1201(差分约束+SPFA)
  2. 在用户控件中用户登录后台脚本判断
  3. Java创建线程的方式
  4. java知识点7——面向过程和面向对象、面向对象的内存分析、构造方法
  5. 如何编写一个npm包,可以公共使用?
  6. [Python图像处理] 七.图像阈值化处理及算法对比
  7. ::after和::before
  8. html 漂浮 广告置顶,jquery浮动图片广告代码_页面上漂浮图片广告代码
  9. 程序设计入门c语言代码,C语言程序设计 入门源代码代码集合
  10. 西北工业大学 编译原理实验 minic文法 编译器前端 flex-bison实现 的 debug手记
  11. TimePicker使用全解
  12. mysql中getdate怎么用_SQL中 getdate() 用法
  13. mysql no space_故障处理,no space left on device!几种可能性?
  14. troublemaker中文谐音_饿狼传说谐音歌词
  15. 快速以管理员运行cmd
  16. 逐字稿整理-中/TED演讲:如何训练思维,突破局限?(大花猫冯夏)
  17. 华硕服务器怎么装win7系统教程视频,华硕电脑离线重装win7系统详细教程
  18. 行测-常识积累(2)
  19. [转贴]迅雷十年反思
  20. 如何自己开发一个Android APP(2)——项目框架

热门文章

  1. 使用ENVI软件时出现Dynamically loadable module failed to load:IMSL
  2. MYSQL-kuang
  3. 聚观早报 | 《三体》将于2023年上映;李恩祐加入京东董事会
  4. LED驱动及控制实验------问题总结
  5. 安卓调节背光变化慢的问题
  6. Win32 API (3) ZeroMemory,SecureZeroMemory
  7. 2017年11月学习心得报告
  8. SpringCloud---搭建Eureka服务治理和发现
  9. IBM Notes 9.0.1FP10版本发布新的补丁程序IF5
  10. BIRT参数设置详解