日期与时间控件QDate, QTime, QDateTime

1. 日期格式符:

d          没有前导零的数字的日期(1到31)

ddd      缩写的本地化日期名称(例如'Mon'到'Sun'
dddd    完整本地化的日期名称(例如“星期一”到“星期日”)
M         没有前导零的数字的月份(1-12)
MM      月份为前导零的数字(01-12)
MMM   缩写的本地化月份名称(例如'Jan'到'Dec')
MMMM   完整的本地化月份名称(例如“1月”到“12月”)
yy     年份为两位数字(00-99)
yyyy    年份为四位数字

 

2. 时间格式符:

h         没有前导零的小时(如果显示AM / PM,则为0到23或1到12)
hh       前导零的小时(如果AM / PM显示,则为00到23或01到12)
H        没有前导零的小时(0到23,即使有AM / PM显示)
HH     前导零的小时(00到23,即使有AM / PM显示)
m        没有前导零的分钟(0到59)
mm      前导零(00到59)的分钟
s           整个秒没有前导零(0到59)
ss        带有前导零(00到59)
z         第二个小数部分, 没有尾随零的毫秒(0到999)
zzz       第二个小数部分, 有尾随零的毫秒(000到999)
AP / A      使用AM / PM显示                AM--上午    PM--下午
ap / a       使用am / pm显示
t             时区

3. QDateTime

在系统语言是English下
QDateTime::currentDateTime().toString(“ddd”);//这样获取到的是Mon-Sun,英文星期的3个字母的缩写。
QDateTime::currentDateTime().toString(“dddd”);//这样获取到的是Monday-Sunday,英文星期。

在系统语言是简体中文下:
QDateTime::currentDateTime().toString(“ddd”);//这样获取到的是周一-周日。
QDateTime::currentDateTime().toString(“dddd”);//这样获取到的是星期一-星期日。

设置语言参数:

QLocale locale = QLocale::Chinese;//指定中文显示
//QLocale locale = QLocale::English;//指定英文显示
//QLocale locale = QLocale::Japanese;//指定日文显示

QString(locale.toString(QDateTime::currentDateTime(),QString(“dddd”)));

//这样获得的星期为指定的语言格式下的。此处为星期一 - 星期日
【注】若获取失败时,请将 QString(“dddd”) 改成 QString(“dddd ”),加个 空格

4. 例如:

获取系统当前时间并设置显示格式
QDateTime current_date_time = QDateTime::currentDateTime();
QString current_date = current_date_time.toString("yyyy-MM-dd hh:mm:ss ddd");
例:2013-05-24 13:09:10 周五
 
获取当前时间时、分、秒
范围:小时(0--23)、分钟(0--59)、秒(0--59)、毫秒(0--999)
QTime current_time = QTime::currentTime();
int hour = current_time.hour();
int minute = current_time.minute();
int second = current_time.second();
int msec = current_time.msec();
 
比较日期大小
//获取当前时间及文件缓存时间
QDateTime currentDateTime = QDateTime::currentDateTime();
QDateTime dateTime = QDateTime::fromString(strDate, sDateTimeFormat);
 
//获取文件缓存一个月之后的时间
QDateTime afterOneMonthDateTime = dateTime.addMonths(1);
 
//如果缓存时间超过一个月,则删除
qint64 nSecs = afterOneMonthDateTime.secsTo(currentDateTime);
if (nSecs > 0)
{
    QFile::remove(strFilePath);
}
这里是举的一个小例子(删除一个月以前的缓存文件),当然也可以使用格式化后的字符串进行比较!
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值