(5)Qt中的日期和时间

2023-11-13

QDate

日期对象格式化
    d              -    没有前导零的日子 (1 to 31)  
    dd            -    前导为0的日子   (01 to 31)  
    ddd          -    显示(缩写) 周一、周二、周三、周四、周五、周六、周日        
    dddd        -    显示(完整) 星期一、星期二、星期三、星期四、星期五、星期六、星期日
    
    M             -    没有前导零的月份(1到12)  
    MM          -    前导零的月份(01到12)  
    MMM       -    缩写 1月、2月、3月...         
    MMMM    -    完整 一月、二月、三月...
    
    yy            -    两个数字的年 (00 to 99)
    yyyy        -    以四位数表示的年份 

// 构造函数
QDate::QDate();
QDate::QDate(int y, int m, int d);

// 公共成员函数
// 重新设置日期对象中的日期
bool QDate::setDate(int year, int month, int day);
// 给日期对象添加 ndays 天
QDate QDate::addDays(qint64 ndays) const;
// 给日期对象添加 nmonths 月
QDate QDate::addMonths(int nmonths) const;
// 给日期对象添加 nyears 月
QDate QDate::addYears(int nyears) const;

// 得到日期对象中的年/月/日
int QDate::year() const;
int QDate::month() const;
int QDate::day() const;
void QDate::getDate(int *year, int *month, int *day) const;
 
QString QDate::toString(const QString &format) const;

// 操作符重载 ==> 日期比较
bool QDate::operator!=(const QDate &d) const;
bool QDate::operator<(const QDate &d) const;
bool QDate::operator<=(const QDate &d) const;
bool QDate::operator==(const QDate &d) const;
bool QDate::operator>(const QDate &d) const;
bool QDate::operator>=(const QDate &d) const;

// 静态函数 -> 得到本地的当前日期
[static] QDate QDate::currentDate();
//举个栗子
QDate date(2022, 10, 21);
qInfo() << date;
//获取年月日
qInfo() << date.year() << date.month() << date.day();
//设置年月日
date.setDate(1900, 10, 1);
qInfo() << date;
//添加时间
date = date.addDays(10);
qInfo() << date;

//将日期格式化成字符串
qInfo() << date.toString();
qInfo() << date.toString(Qt::DateFormat::ISODate);
qInfo() << date.toString("yyyy/MM/dd");

//获取当前系统日期
auto curDate = QDate::currentDate();
qInfo() << curDate;

QTime

时间格式化
    -- 时
    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)
    H      ==>    The hour without a leading zero (0 to 23, even with AM/PM display)
    HH    ==>    The hour with a leading zero (00 to 23, even with 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 whole second, without any leading zero (0 to 59)
    ss    ==>    The whole second, with a leading zero where applicable (00 to 59)


    -- 毫秒
    zzz    ==>    The fractional part of the second, to millisecond precision, 
            including trailing zeroes where applicable (000 to 999).


    -- 上午或者下午
    AP or A        ==>        使用AM/PM(大写) 描述上下午, 中文系统显示汉字
    ap or a         ==>        使用am/pm(小写) 描述上下午, 中文系统显示汉字 

// 构造函数
QTime::QTime();
/*
    h 			==> must be in the range 0 to 23
    m and s 	==> must be in the range 0 to 59
    ms 			==> must be in the range 0 to 999
*/ 
QTime::QTime(int h, int m, int s = 0, int ms = 0);

// 公共成员函数
// Returns true if the set time is valid; otherwise returns false.
bool QTime::setHMS(int h, int m, int s, int ms = 0);
QTime QTime::addSecs(int s) const;
QTime QTime::addMSecs(int ms) const;

// 示例代码
  QTime n(14, 0, 0);                // n == 14:00:00
  QTime t;
  t = n.addSecs(70);                // t == 14:01:10
  t = n.addSecs(-70);               // t == 13:58:50
  t = n.addSecs(10 * 60 * 60 + 5);  // t == 00:00:05
  t = n.addSecs(-15 * 60 * 60);     // t == 23:00:00

// 从时间对象中取出 时/分/秒/毫秒
// Returns the hour part (0 to 23) of the time. Returns -1 if the time is invalid.
int QTime::hour() const;
// Returns the minute part (0 to 59) of the time. Returns -1 if the time is invalid.
int QTime::minute() const;
// Returns the second part (0 to 59) of the time. Returns -1 if the time is invalid.
int QTime::second() const;
// Returns the millisecond part (0 to 999) of the time. Returns -1 if the time is invalid.
int QTime::msec() const;

QString QTime::toString(const QString &format) const;

// 操作符重载 ==> 时间比较
bool QTime::operator!=(const QTime &t) const;
bool QTime::operator<(const QTime &t) const;
bool QTime::operator<=(const QTime &t) const;
bool QTime::operator==(const QTime &t) const;
bool QTime::operator>(const QTime &t) const;
bool QTime::operator>=(const QTime &t) const;

// 静态函数 -> 得到当前时间
[static] QTime QTime::currentTime();
//举个栗子
QTime time(5, 2, 0);
qInfo() << time;
//获取属性
qInfo() << time.hour() << time.minute() << time.second();
//添加时间
time = time.addSecs(20);
qInfo() << time;
//将时间格式化成字符串
qInfo() << time.toString();
qInfo() << time.toString(Qt::DateFormat::ISODate);
qInfo() << time.toString("hh:mm:ss");
//从指定字符串生成时间
qInfo() << QTime::fromString("05:30:20");
//获取当前时间
QTime curTime = time.currentTime();
qInfo() << curTime;

QDateTime

// 构造函数
QDateTime::QDateTime();
QDateTime::QDateTime(const QDate &date, const QTime &time, Qt::TimeSpec spec = Qt::LocalTime);

// 公共成员函数
// 设置日期
void QDateTime::setDate(const QDate &date);
// 设置时间
void QDateTime::setTime(const QTime &time);
// 给当前日期对象追加 年/月/日/秒/毫秒, 参数可以是负数
QDateTime QDateTime::addYears(int nyears) const;
QDateTime QDateTime::addMonths(int nmonths) const;
QDateTime QDateTime::addDays(qint64 ndays) const;
QDateTime QDateTime::addSecs(qint64 s) const;
QDateTime QDateTime::addMSecs(qint64 msecs) const;

// 得到对象中的日期
QDate QDateTime::date() const;
// 得到对象中的时间
QTime QDateTime::time() const;

// 日期和时间格式, 格式字符参考QDate 和 QTime 类的 toString() 函数
QString QDateTime::toString(const QString &format) const;

// 操作符重载 ==> 日期时间对象的比较
bool QDateTime::operator!=(const QDateTime &other) const;
bool QDateTime::operator<(const QDateTime &other) const;
bool QDateTime::operator<=(const QDateTime &other) const;
bool QDateTime::operator==(const QDateTime &other) const;
bool QDateTime::operator>(const QDateTime &other) const;
bool QDateTime::operator>=(const QDateTime &other) const;

// 静态函数
// 得到当前时区的日期和时间(本地设置的时区对应的日期和时间)
[static] QDateTime QDateTime::currentDateTime();
//举个栗子
QDateTime dt = QDateTime::currentDateTime();
qInfo() << dt;
//获取日期
auto date = dt.date();
auto time = dt.time();
//格式化时间
qInfo() << dt.toString("yyyy年MM月dd日 hh:mm:ss AP");

经时计时器 

 QTime的经时计时器已经过时了,推荐使用QElapsedTimer。

//QTime已废弃的函数
// 开始计时
void QTime::start();
// 计时结束
int QTime::elapsed() const;
// 重新计时
int QTime::restart();

// 推荐使用的API函数
// QElapsedTimer 类
void QElapsedTimer::start();
qint64 QElapsedTimer::restart();
qint64 QElapsedTimer::elapsed() const;
//举个栗子
//经时计时器
QElapsedTimer eTimer;
eTimer.start();
int count = 0;
for (int i = 0; i < 100000000; i++)
{
    count++;
    //eTimer.restart();  //重新计时
}
qInfo() << "count:" << count << "用时:" << eTimer.elapsed(); //ms

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(5)Qt中的日期和时间 的相关文章

  • Qt 5.5 QOpenGLWidget 链接错误未链接任何 openGL 调用

    我尝试使用 Qt 5 5 1 构建一个简单的 OpenGL 应用程序 一切都很好 直到我尝试使用 glClearColor 等 openGL 本机函数调用 该小部件实际上编译并产生黑屏 但在我尝试使用任何 openGL 本机函数后 它甚至不
  • 如何在Qt无框窗口中实现QSizeGrip?

    如何使用 Qt 无框窗口实现 QSizeGrip 代码会是什么样的 您只需在布局内窗口的一角添加 QSizeGrip 即可使其保持在该角落 QDialog dialog new QDialog 0 Qt FramelessWindowHin
  • 如何在qt中进行异步文件io?

    我想知道如何在qt中实现异步文件io 这在普通的 qt 中是否可以实现 或者有人需要使用另一个库 例如 libuv 来实现这样的事情 我正在查看 QDataStream 但即使它是一个 流 它也不是非阻塞的 我想一种解决方案是制作一个在内部
  • 如何在 QT 中绘制点?

    我正在用 QT 用 C 编写一个应用程序 其中有 n 个点并计算它的凸包 然而 一旦计算出来 我不知道如何绘制点并绘制船体的边界 制作菜单按钮等很简单 但我不确定我是否知道执行此操作的工具 你怎么做到这一点 图形视图 addEllipse
  • 仅在发布模式下使用 glGenBuffer 时出现未处理的异常 - QT

    我在 Windows 7 上使用 Qt 4 8 发布模式编译项目时遇到了一些问题 调试时一切正常 但在发布时我收到未处理的异常 0xC0000005 访问冲突 我将范围缩小到发生这种情况的行 即生成像素缓冲区的时间 我的第一个猜测是 DLL
  • 打开和关闭附加窗口 (QML)

    目前我有一个通过以下方式打开的窗口 property variant win Button id testButton MouseArea onClicked var component Qt createComponent test qm
  • 有没有办法向 QListView 添加部分?

    我正在使用 Qt5 2 和 C 来实现一个应用程序 需要显示一个列表 其中包含类似于下面的示例图像的部分 source ngo hung com http www ngo hung com files images contact list
  • 如何使用 Qt DOM 通过此语法获取 xml 属性

    我正在使用 Qt DOM XML 解析器 并且遇到了如下属性定义的问题
  • 在 Qt 服务器上验证用户身份

    我正在尝试使用 C QtTcpSocket 为个人项目 多人国际象棋游戏 实现身份验证系统 我的朋友建议了一种验证用户的方法 但我想问是否有更简单或更好的方法 来自 Python 背景 做这个项目主要是为了加深对 C 的理解 我将发布我朋友
  • 清除pyqt中布局中的所有小部件

    有没有办法清除 删除 布局中的所有小部件 self plot layout QtGui QGridLayout self plot layout setGeometry QtCore QRect 200 200 200 200 self r
  • 如何在针对 Windows XP 的情况下使用 VS2012 构建 Qt 4/5?

    我正在尝试使用 Visual Studio 2012 构建 Qt 4 8 5 Qt 5 2 1 针对 Windows XP SDK v7 1a 使用 VS2102 编译时 源代码与 SDK v7 1a 存在各种不兼容性 因此无法开箱即用 这
  • Qt 嵌入式触摸屏 QMouseEvents 在收到 MouseButtonRelease 之前未收到

    我在带有触摸屏的小型 ARM 嵌入式 Linux 设备上使用 Qt 4 8 3 我的触摸屏配置了 tslib 并对其进行了校准 因此 etc 中有一个 pointcal 文件 我的触摸事件的位置工作得很好 但无论如何我都会在鼠标按下或鼠标释
  • PyQt4 QPalette 不工作

    btn QtGui QPushButton Button self palettes btn palette palettes setColor btn backgroundRole QtCore Qt green btn setPalet
  • 如何doxygen注释Qt属性?

    我想将 Doxygen 注释附加到我的 Q PROPERTY 例如 song h class Song public QObject Q OBJECT private Q PROPERTY QString title READ title
  • Qt中用于线程间通信的类设计

    问题陈述 用相机跟踪物体并相应地移动相机的方位角和仰角 Process 相机获取物体的图像 处理相机的每一帧以查找物体 应该被跟踪 并将每帧中生成的信息传递给机械设备 万向节 以平移和倾斜方式移动摄像机 Design 主 Gui 在一个线程
  • 如何将自定义 Qt 类型与 QML 信号一起使用?

    我在 Qt 5 2 qml 应用程序中创建了一个自定义类型 class Setting public QObject Q OBJECT Q PROPERTY QString key READ key WRITE setKey Q PROPE
  • QFileSystemModel setRootPath

    我正在尝试创建一个 Qt 应用程序来显示文件夹 Mac OS 中的 Users 文件夹 的内容 这是代码 QFileSystemModel dirModel new QFileSystemModel dirModel gt setRootP
  • Qt(在 Windows 上)将权限级别设置为“requireAdministrator”

    我正在使用 Qt Creator 并努力制作 exe文件默认以管理员身份运行 在线阅读所有解决方案我试图将这一行放入我的 pro file QMAKE LFLAGS MANIFESTUAC level requireAdministrato
  • Qt 支持 Windows 蓝牙 API 吗?

    谁能告诉我 Qt 是否支持 Windows 蓝牙 API 如果是这样 您能否分享一些有关如何使用它的信息 自上次答复以来 这个问题的答案发生了一些变化 Qt 5 2 版为 Linux BlueZ 和 BlackBerry 设备实现了蓝牙 A
  • 在 Qt 中自动调整标签文本大小 - 奇怪的行为

    在 Qt 中 我有一个复合小部件 它由排列在 QBoxLayouts 内的多个 QLabels 组成 当小部件调整大小时 我希望标签文本缩放以填充标签区域 并且我已经在 resizeEvent 中实现了文本大小的调整 这可行 但似乎发生了某

随机推荐

  • 如何为你的网站添加二级域名?

    一般公司注册的域名支持添加20个二级域名 辅助域名的添加与www的主域名相同 填写二级域名的名称 如bbs 并填写二级域名对应的IP 如果你的域名是www 98yun com bbs 这是一个论坛 你想添加一个bbs 98yun com 这
  • 大数据之——Zookeeper个人讲解

    一 zookeeper的概念 1 ZooKeeper是一个分布式的 开放源码的分布式应用程序协调服务 是Google的Chubby一个开源的实现 是Hadoop和Hbase的重要组件 它是一个为分布式应用提供一致性服务的软件 提供的功能包括
  • 用IDEA编写第一个JAVA程序

    第一步 打开IDEA IDEA下载链接 IntelliJ IDEA The Capable Ergonomic Java IDE by JetBrains 第二步 选择新建一个空项目 第三步 java项目的文件层次是 项目 包 类 创建一个
  • 6.2小车循迹,跟随,摇头测距功能实现

    1 循迹小车 1循迹模块的使用 TCRT5000传感器的红外发射二极管不断发射红外线 当发射出的红外线没有被反射回来或被反射回来但强度不够大时 红外接收管一直处于关断状态 此时模块的输出端为高电平 指示二极管一直处于熄灭状态 被检测物体出现
  • <1> linux与shell的关系

    在正式学习shell命令之前 如果你还对linux与shell的关系不甚了解 请耐心看完这篇简介 本文简要梳理了操作系统 shell的关系和作用 一个完整的计算机 整体结构如下图 我们的计算机由硬件组成 包括CPU 内存 主板 磁盘 各种外
  • 防关联软件技术分析之跨境电商防关联云服务器之超级VPS管理器

    众所周知 亚马逊有一个非常坑爹的规定 那就是同一个人或企业只能运营一个账号 并采用严格的程序对此进行监控 如果发现账户关联 则存在封号的风险 这就意味着 在同一个外网IP环境下操作多个账号是非常危险的 然而 我相信很多卖家手里都会有多个亚马
  • Java IO流

    Java的IO通过java io包下的类和接口来支持 在java io包下主要包括输入流 输出流两种IO流 每种输入 输出流又可分为字节流和字符流两大类 其中字节流以字节为单位来处理输入 输出操作 而字符流则以字符来处理输入 输出操作 1
  • java IO框架分析

    jave io框架 2010 11 10 22 18 34 分类 默认分类 举报 字号 订阅 可从IO的类层次 IO框架的设计模式来论述 总体来说 IO可以分为字节流和字符流 不同在于字符流由字节流包装而来 在IO读入之后经过JVM处理 把
  • 编译语言、解释语言与脚本语言之间的区别

    资料一 1 解释型语言与编译型语言的区别翻译时间的不同 编译型语言在程序执行之前 有一个单独的编译过程 将程序翻译成机器语言 以后执行这个程序的时候 就不用再进行翻译了 解释型语言 是在运行的时候将程序翻译成机器语言 所以运行速度相对于编译
  • 通俗易懂的机器学习——筛选垃圾邮件(贝叶斯分类)

    筛选垃圾邮件 贝叶斯分类 背景及应用 贝叶斯公式 数据集 引入依赖包 数据预处理 全局变量 过滤所有非中文词语 读取邮件 加载邮件 获取概率表 划分训练集和测试集 计算分词的概率表 保存概率表 检查邮件是否为垃圾文件 获取分词对应的概率字典
  • SQL-DataCamp-Joining Data in SQL

    1 Introduction to Joins 1 1 Introduction to INNER JOIN video 1 2 INNER JOIN PostgreSQL was mentioned in the slides but y
  • 大数据课程K17——Spark的协同过滤法

    文章作者邮箱 yugongshiye sina cn 地址 广东惠州 本章节目的 了解Spark的协同过滤概念 一 协同过滤概念 1 概念 协同过滤是一种借助众包智慧的途径 它利用大量已有的用户偏好来估计用户对其未接触过的物品的喜好程度 其
  • Qt开发 之 Windows资源管理器模仿 并 小超越

    文章目录 1 简述 2 优化点 2 1 内存处理 2 1 1 Windows的资源管理器 2 1 1 1 大图标模式 2 1 1 2 超大图标模式 2 1 1 3 其他模式 2 1 2 用Qt做的类似资源管理器的软件 2 2 滑动处理 2
  • geek卸载工具安装和使用

    软件描述 geek可以快速彻底将软件卸载后的垃圾程序删除干净 并且小巧无广告 无需安装 整个大小仅仅几兆 一 软件获取 1 通过网盘直接下载 https pan quark cn s 29d5661ca7de 2 官网下载 打开官网后点击d
  • Spring@Autowired注解与自动装配

    1 配置文件的方法 我们编写spring 框架的代码时候 一直遵循是这样一个规则 所有在spring中注入的bean 都建议定义成私有的域变量 并且要配套写上 get 和 set方法 Boss 拥有 Office 和 Car 类型的两个属性
  • IDER代码检查工具

    随着业务的发展 系统会越来越庞大 原本简单稳定的功能 可能在不断迭代后复杂度上升 潜在的风险也随之暴露 导致最终服务不稳定 造成业务价值的损失 而为了减少这种情况 其中一种比较好的方式就是提高代码质量 比如通过代码审查 从而降低错误风险 但
  • Qt控件米白色主题风格,QSS控件样式,Qt风格,Qt控件源代码

    米白色主题控件风格 使用c 开发 原生控件主题风格 主题预览图 由www qt ui com设计开发完成 提供主题源代码 主题下载地址 http www qt ui com theme UIGTE001 主题预览图 产品官网 www qt
  • 【QT进阶】第五章 QT绘图之自定义控件--仪表盘绘制

    作者主页 凉开水白菜 作者简介 共同学习 互相监督 热于分享 多加讨论 一起进步 专栏目录 零基础学QT 文章导航篇 专栏资料 https pan baidu com s 192A28BTIYFHmixRcQwmaHw 提取码 qtqt 点
  • 2.6 矩阵的初等变换

    文章目录 初等变换 行 列 定理 等价 性质 初等方阵 初等方阵与初等变换的关系 三种初等方阵的行列式 逆矩阵 定理 初等矩阵的作用 定理 A可逆条件总结 初等变换法求逆矩阵 初等行变换法 只做行变换 参考 初等变换 行 列 下面是三种初等
  • (5)Qt中的日期和时间

    QDate 日期对象格式化 d 没有前导零的日子 1 to 31 dd 前导为0的日子 01 to 31 ddd 显示 缩写 周一 周二 周三 周四 周五 周六 周日 dddd 显示 完整 星期一 星期二 星期三 星期四 星期五 星期六 星