Qt:获取日期和时间

前言

  一般而言,操作系统(Windows/Linux/Mac)的内核函数都会给出了日期时间的相关系统库函数,Qt在此基础上进行了封装,提供了获取时间和日期的3个相关类——QDateTime、QDate、QTime,使其在Qt内部空间之间的使用更加便捷。

QDateTime获取日期和时间

  QDateTime顾名思义,获取日期和时间,调用静态成员函数可直接获取字符串值,同时可以控制显示格式:

	QDateTime dateTime(QDateTime::currentDateTime());
	QString qStr = dateTime.toString("yyy-MM-dd hh:mm::ss ddd");

  显示效果如下:
在这里插入图片描述
  其中,控制字符串的格式如下表:

格式 备注
d 天数,范围1~31
dd 天数,范围01~31,前缀自动补一位零
ddd 星期天数缩写,以本地操作系统为准(如,汉字的周一到周日,英文的Mon.到Sun.)
dddd 星期天数全程,以本地操作系统为准(如,汉字的星期一到星期日,英文的Monday到Sunday)
M 月数,范围1~12
MM 月数,范围01~12,自动补一位零
MMM 月数名称缩写,默认本地操作系统值(如,汉字的1月到12月,英文的Ja)
MMMM 月数名称全程,默认本地操作系统值(如,汉字的一月到十二月)
yy 年份的后两位,范围00~99
yyyy 年份的四位全称
h 没有补零的小时数,范围0~23或1 ~12
hh 自动补零的小时数,范围00~23或01 ~12
H 没有补零的小时数,范围0~23(即便12小时制也是如此)
HH 自动补零的小时数,范围0~23(即便12小时制也是如此)
m 分钟数,范围0~59
mm 自动补零分钟数,范围00~59
s 秒钟数,范围0~59
ss 自动补零秒钟数,范围00~59
z 秒钟的小数部分(毫秒),精确范围 0-999
zzz 秒钟的小数部分,自动补零3位,范围000-999
AP(A) 使用12小时制,显示AM/PM
ap(a) 使用12小时制,显示am/pm
t 时区

  以上任意字段可以随机排序,没有任何限制,但是要注意有大小写之分。

QDate获取日期

  QDate顾名思义,即获取日期。调用静态成员函数可直接获取日期年月日的整型值

	QDate date(QDate::currentDate());
	int year = date.year();
	int month = date.month();
	int day = date.day();

QTime获取时间

  QDate顾名思义,即获取时间。调用静态成员函数可直接获取时间时分秒的整型值

	QTime time(QTime::currentTime());
	int hour = time.hour();
	int minute = time.minute();
	int second = time.second();

总结

  QDateTime、QDate、QTime的强大不止于此,Qt官方提供了各种各种基于日期和时间的操作,如果感兴趣的话,可以从官方API或者源码的角度去学习和解读,在此不再累述。

发布了222 篇原创文章 · 获赞 558 · 访问量 38万+

猜你喜欢

转载自blog.csdn.net/CV_Jason/article/details/89574886