时间类(Date和Time)

时间类有三种:QTime 、QDate、QDateTime

QTime:(时间)

QTime 对象包含一个时钟时间,它可以表示为自午夜以来的小时、分钟、秒和毫秒数。它提供了用于比较时间和通过添加毫秒数来操作时间的功能。QTime使用24小时制格式;它没有AM/PM的概念。

构造具有小时h、分钟m、秒s和毫秒ms 的时间 

常用的函数:

hour()小时
minute()分钟
second()秒数
msec()毫秒数
A.msecsTo(B)判断时间的大小
isNull()判断是否为空
addMsecs(intms)返回一个比该对象晚的(毫秒)
addSecs(ints)返回一个比该对象晚的(秒)
currentTime()当前时间
setHMS()设置时间
toString()设置输出格式

 toString()格式的种类:

h显示小时(0-23),AM或PM的话(1-12)
hh显示小时(00-23),AM或PM的话(01-12)
H统一显示(0-23)
HH统一显示(00-23)
m显示分钟(0-59)
mm显示分钟(00-59)
s

显示秒数(0-59)

ss显示秒数(00-59)
z显示毫秒数(0-999)
zzz显示毫秒数(000-999)
AP or A使用上午/下午显示。A/AP将被大写版本的QLocale::amText() 或QLocale::p mText() 取代。
ap or a使用上午/下午显示。a/ap将被QLocale::amText() 或 QLocale::p mText() 的小写版本所取代。
t时区

    QTime T(10,10,10,10);
    T.setHMS(20,20,20,200);//设置时间
    T=T.currentTime();//获取当前时间
    T.start();
    qDebug()<<T;
    T=T.addSecs(60);//加1分钟
    T=T.addMSecs(100);//加100ms
    qDebug()<<T.toString("hh::mm::ss::zzz");//显示内容

QDate:(日期)

QDate 对象表示特定日期,而不考虑日历、区域设置或创建时使用的其他设置或由系统提供的其他设置。它可以报告表示日与外推公历或作为QCalendar对象提供的任何日历相关的日子的年、月和日。

 构造具有年月日的日期。

常用的函数:

date()
mouth()
year()
setDate()设置日期
isValid()判断日期是否正确
isNull()判断日期是否为空
isLeapYear()是否为闰年
getDate()获取日期
currentDate()获取当前日期
toString()设置显示格式

toString()的格式有:

d显示天数(1-31)
dd显示天数(01-31)
ddd显示(Mon -Sun)周一到周日
dddd显示(Monday-Sunday)星期一到星期天
M显示月份(1-12)
MM显示月份(01-12)
MMM显示月份(Jan-Dec)
MMMM显示月份(January-December)
yy显示年份(00,99)
yyyy显示年份(完整的年份)

    QDate date(10,10,10);//创建一个日期
    qDebug()<<date.year()<<"年"<<date.month()<<"月"<<date.day()<<"日";//输出日期
    date.setDate(2020,12,12);//设置日期
    date=date.currentDate();//获取当前日期
    qDebug()<<date.toString("yyyy::MM::dd");//设置输出类型

 

QDateTIme :(日期和时间)

QDateTime 对象对日历日期和时钟时间(“日期时间”)进行编码。它结合了QDateQTime类的功能。它可以从系统时钟读取当前日期时间。它提供了用于比较日期时间和通过添加秒数、天数、月数或年数来操作日期时间的函数。

 构造函数有多种,最常见的为第5种。

    QDateTime DT(QDate(2020,20,20),QTime(11,11,11,100),Qt::TimeSpec::LocalTime);
                //  日期                时间                日期和时间的格式

Qt::TimeSpec有以下四种:

Qt::LocalTime本地时间(默认)
Qt::UTC协调世界时间
Qt::OffsetFromUTC与协调世界时相距的偏移量(以秒为单位)
Qt::TimeZone命名时区

常见的函数:

date()日期
time()

时间

isValid()判断是否符合规则
isNull()判断是否为空
setDate()设置日期
setTime()设置时间
toString()提供输出格式
currentDateTime()获取当前时间
currentDateTimeUtc()获取当前时间以utc为单位
daysTo()计算天数的差值
swap()交换日期(不会失败)
    QDateTime DT(QDate(2020,20,20),QTime(11,11,11,100),Qt::TimeSpec::LocalTime);
    QDateTime DT1(DT);//创建一个新的时间
    DT=DT.currentDateTime();//获取当前时间
    DT.swap(DT1);//交换时间
    qDebug()<<DT.date().year()<<"年"<<DT.date().month()<<"月"<<DT.date().day()<<"日"
            <<DT.time().hour()<<"小时"<<DT.time().minute()<<"分钟"<<DT.time().second()<<"秒";

 

 

QAbstractSpinBox类是一个抽象基类,提供了一个数值设定框和一行编辑器来显示设定值。

以下是它的子类: 

QDateTimeEdit显示时间和日期
QSpinBox显示整数
QDoubleSpinBox显示浮点数

一:QDateTimeEdit

QDateTimeEdit类,提供了一个可以编辑日期和时间的部件。

Time Edit显示时间
Date Ex显示日期
Date/Time Edit显示时间和日期

在ui界面中分别为:

1.QTimeEdit :时间显示器

构造函数为:

常用的函数: 

setMinimumTime()设置最小时间
setMaximumTime()设置最大时间
setTime()设置默认事件
setDisplayFormat()设置输出风格
    QTimeEdit *te=new QTimeEdit(this);
    te->setMinimumTime(QTime(10,10,10,100));//设置最小时间
    te->setMaximumTime(QTime(23,59,59,999));//设置最大时间
    te->setTime(QTime(20,20,20,20));//设置初始时间
    te->setDisplayFormat("hh时mm分钟ss秒");
    te->move(100,100);

默认风格: 

设定后的风格:

2.QDateEdit:日期显示器

常用的函数:

setMinimumDate()设置最小日期
setMinimumDate()设置最大日期
setDate()设置默认日期
setDisplayFormat()设置输出风格
    QDateEdit *de=new QDateEdit(this);
    de->move(100,100);
    de->setDate(QDate(2020,10,10));//设置初始日期
    de->setMaximumDate(QDate(2099,12,31));//最大日期
    de->setMinimumDate(QDate(2020,1,1));//最小日期
    de->setDisplayFormat("yyyy年MM月dd日");

默认格式: 

 设置后的格式:

 3.QDateTimeEdit:时间日期显示器

构造函数:

 常用的一些函数:

setDateTime()设置时间
setDisplayFromat()设置显示格式
setCalendarPopup()设置是否显示日历
设置最大最小日期和时间就不列举了
    QDateTimeEdit *dte=new QDateTimeEdit(this);
    dte->setDateTime(QDateTime(QDate(2020,20,20),QTime(20,20,20,200)));//设置时间日期
    dte->setDateTime(QDateTime::currentDateTime());//设置当前时间
    dte->setDisplayFormat("yyyy年MM月dd日 ddd HH时mm分ss秒");//设置格式
    dte->setCalendarPopup(true);//弹出日历窗口

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值