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或者源码的角度去学习和解读,在此不再累述。
赞 (0)