原文链接:http://zetcode.com/gui/pyqt5/datetime/

PyQt5日期与时间

QDate, QTime, QDateTime

PyQt5用于处理日期和时间的类有QDateQDateTimeQTime

  • QDate类用于处理公历日期。它提供的方法可以测定日期、比较或者操作日期。
  • QTime类用于处理时间。它提供的方法可以测定时间、比较或者多样化操作时间。
  • QDateTime类将QDate对象和QTime对象整合为一个对象。

当前日期和时间

PyQt5 用于测定当前日期和时间的方法有 currentDate(), currentTime()currentDateTime() .

实例及注释:

#文件名current_date_time.pyfrom PyQt5.QtCore import QDate, QTime, QDateTime, Qtnow = QDate.currentDate()#获取当前日期print(now.toString(Qt.ISODate)) #ISO日期格式打印
print(now.toString(Qt.DefaultLocaleLongDate)) #本地化长格式日期打印datetime = QDateTime.currentDateTime() #获取当前日期与时间print(datetime.toString()) #当前日期与时间打印time = QTime.currentTime() #获取当前时间print(time.toString(Qt.DefaultLocaleLongDate)) #本地化长格式时间打印

运行上面的文件,输出结果如下:

2018-01-14
2018年1月14日
周日 1月 14 17:00:34 2018
17:00:34

UTC(Universal Time Coordinated)协调世界时

全球有24个时区,每个时区有不同的本地时间。而且有时这些本地时间还是经过进一步修改的夏令时。为了避免这些时间相互混淆,就需要一个世界标准时间。UTC即是选出的主要标准。

实例及注释:

#文件名 utc_local.pyfrom PyQt5.QtCore import QDateTime, Qtnow = QDateTime.currentDateTime() #获取当前日期与时间print("Local datetime: ", now.toString(Qt.ISODate)) #本地时间ISO日期格式打印
print("Universal datetime: ", now.toUTC().toString(Qt.ISODate)) #转化成UTC日期与时间后打印print("The offset from UTC is: {0} seconds".format(now.offsetFromUtc())) #当前时间与UTC之间的偏移量

输出结果如下:

Local datetime: 2018-01-14T17:10:23
Universal datetime: 2018-01-14T09:10:23Z
The offset from UTC is: 28800 seconds

总天数

特定日期所在月份或所在年份的总天数。

#文件名: days.pyfrom PyQt5.QtCore import QDate, Qtd = QDate(1945, 5, 7) #设定目标日期print("Days in month: {0}".format(d.daysInMonth())) #目标日期所在月份的总天数
print("Days in year: {0}".format(d.daysInYear())) #目标日期所在年份的总天数

输出结果如下:

Days in month: 31
Days in year: 365

间隔天数

#文件名 xmas.pyfrom PyQt5.QtCore import QDatexmas1 = QDate(2017, 12, 24) #上一个圣诞节日期
xmas2 = QDate(2018, 12, 24) #下一个圣诞节日期now = QDate.currentDate() #当前日期dayspassed = xmas1.daysTo(now) #上一个圣诞节日期与当前日期间隔天数
print("{0} days have passed since last XMas".format(dayspassed)) nofdays = now.daysTo(xmas2) #当前日期与下一个圣诞节日期间隔天数
print("There are {0} days until next XMas".format(nofdays))

输出结果如下:

21 days have passed since last XMas
There are 344 days until next XMas

日期与时间计算

#文件名 arithmetic.pyfrom PyQt5.QtCore import QDateTime, Qtnow = QDateTime.currentDateTime()#获取当前日期与时间print("Today:", now.toString(Qt.ISODate))#当前日期与时间
print("Adding 12 days: {0}".format(now.addDays(12).toString(Qt.ISODate)))#当前日期与时间加上12天
print("Subtracting 22 days: {0}".format(now.addDays(-22).toString(Qt.ISODate)))#当前日期与时间减去22天print("Adding 50 seconds: {0}".format(now.addSecs(50).toString(Qt.ISODate)))#当前日期与时间加上50秒
print("Adding 3 months: {0}".format(now.addMonths(3).toString(Qt.ISODate)))#当前日期与时间加上3个月
print("Adding 12 years: {0}".format(now.addYears(12).toString(Qt.ISODate)))#当前日期与时间加上12年

输出结果如下:

Today: 2018-01-14T17:23:57
Adding 12 days: 2018-01-26T17:23:57
Subtracting 22 days: 2017-12-23T17:23:57
Adding 50 seconds: 2018-01-14T17:24:47
Adding 3 months: 2018-04-14T17:23:57
Adding 12 years: 2030-01-14T17:23:57

夏令时 daylight saving time (DST)

#文件名 daylight_saving.pyfrom PyQt5.QtCore import QDateTime, QTimeZone, Qtnow = QDateTime.currentDateTime()print("Time zone: {0}".format(now.timeZoneAbbreviation())) #获取当前时区简写if now.isDaylightTime(): #判断是否处于夏令时print("The current date falls into DST time")
else:print("The current date does not fall into DST time")

输出结果如下:
Time zone: 中国标准时间
The current date does not fall into DST time

Unix时间戳

时间戳是选来用于当作特定时代起点的一个瞬间。比如西方基督教国家的时间戳开始于耶稣降生日。再比如使用过20年的法国共和历,它的起点是1792年9月22日,第一共和国宣布成立,君主制被废除。
电脑也有它们的时间戳。最流行的是Unix时间戳,它的起点是1970年1月1日 UTC 时间 00:00:00。电脑中的日期与时间就是通过测定距离时间戳的秒数或者时钟滴答数来计算的。
Unix时间是距离Unix时间戳的秒数。

#文件名 unix_time.pyfrom PyQt5.QtCore import QDateTime, Qtnow = QDateTime.currentDateTime() #当前日期与时间unix_time = now.toSecsSinceEpoch() #获取Unix时间
print(unix_time)d = QDateTime.fromSecsSinceEpoch(unix_time) #Unix时间转换为QDate
print(d.toString(Qt.ISODate))

输出结果如下:

1515923173
2018-01-14T17:46:13

注:原文下面还有介绍儒略日(Julian Day),多为天文学家采用,貌似用不到。

PyQt5教程(二):日期与时间相关推荐

  1. PyQt5 教程 《日期和时间》

    导读 目录 导读 PyQt5的日期和时间 QDate,QTime,QDateTime 当前日期和时间 UTC时间 天数 天数的差异 日期时间算术 夏令时 Unix时代 Julian day 历史战役 ...

  2. C++基础教程之日期和时间

    标题:C++基础教程之日期和时间 C++ 标准库没有提供所谓的日期类型.C++ 继承了 C 语言用于日期和时间操作的结构和函数.为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 头文件. ...

  3. PyQt5教程(一)——Python的安装

                                      Python3的安装 因为PyQt5的要求,Python需要安装python3,本文以Python3.5为例. 1.打开python ...

  4. PyQt5教程(五)——Eric6的配置(最详细)

                                                             Eric6的配置 Eric的安装和PyQt5的安装,大家可以翻阅之前的文章: PyQt ...

  5. PyQt5教程(三)——Eric6的安装(详细)

                                               Eric6的安装 经过前两篇的介绍(Python和PyQt5的安装),本偏开始介绍Eric6的安装: PyQt5教 ...

  6. php入门时间,php入门教程(二十一) php日期与时间函数

    本节内容: php日期与时间函数 PHP提供了很多的处理日期和时间的函数,包括time().date().mktime().checkdate().microtime().strtotime()等,详 ...

  7. QT教程3: 日期和时间的对象操作

    一 说明 在这篇文章中,我将向您展示如何在 PyQt5 中创建 QDate 和 QTime QDate 是用于处理公历中日历日期的类 它具有确定日期.比较或操作日期的方法. QTime 类使用时钟时间 ...

  8. 《layui宇宙版教程》:日期和时间组件laydate

    <Layui宇宙版教程>提供2000人的QQ群进行交流学习,QQ群号:1046961650,或通过手机QQ扫描二维码进入: 1.19 日期和时间组件laydate 主要以年选择器.年月选择 ...

  9. PyQt5的日期和时间

    PyQt5的这部分教程展示了如何使用PyQt5的日期和时间模块. QDate,QTime,QDateTime PyQt5使用QDate,QDateTime,QTime类来操作日期和时间.QDate是一 ...

最新文章

  1. linux c 编译警告 warning: this decimal constant is unsigned only in ISO C90
  2. python重复执行_关于计时器:在Python中每x秒重复执行一次函数的最佳方法是什么?...
  3. 连续三年蝉联第一,Flink 荣膺全球最活跃的 Apache 开源项目
  4. (链表 栈 队列 递归)
  5. Android分辨率比例为1,修改android5.1系统分辨率
  6. 面试官:熔断降级原理是什么?
  7. Handler源码解析2
  8. memcached简单的使用教程
  9. 【Linux 命令学习第二天】
  10. ubuntu GIT 安装与使用
  11. 回溯法之迷宫问题(华为笔试题)
  12. 作为一个程序员,你居然不知道内存(DRAM)的工作原理,这样能跟上时代的进步吗?
  13. 在线旅游网站技术讲解
  14. messenger支持查找附近的人功能吗_您如何使用Facebook Messenger跟踪某人的位置 | MOS86...
  15. echo和narcissus寓意_希腊神话故事(一)Echo 和 Narcissus
  16. 部落优势服务器,魔兽怀旧服联盟优势服有哪些?怀旧服联盟优势服务器一览
  17. reincarnation server
  18. 为什么我们要减肥?科学家证实肥胖或可导致癌细胞肿瘤生长
  19. Ubuntu上nc的安装与使用
  20. sort() 函数的用法

热门文章

  1. Pythonnbsp;实现LeNet网络模型的训练及预测
  2. airpods pro是按压还是触摸_使用AirPods Pro一个月后,我是这么看待它的
  3. 公共基础知识:中国地形地貌
  4. 消防安全监测模块,筑牢工厂消防安全屏障
  5. 华为桌面云虚拟机白屏无法启动的修复方法
  6. 学习记录664@项目管理之项目进度管理
  7. 线性代数1.3行列式的按行展开
  8. Windows10搭建opengrok服务器
  9. 项目经验教训总结(教育软件)
  10. 3D图形学(一):三维几何学基础(2):向量点乘