qt时间戳转换(qt时间戳转换日期格式)

时间日期是经常遇到的数据类型,Qt中时间日期类型的类如下:

QTime:时间数据类型,仅表示时间,如15:23:13。

QDate:日期数据类型,仅表示日期,如2017-4-5。

QDateTime:日期时间数据类型,表示日期和时间,如2017-03-23 08:12:43。

QCalendarWidget:一个用日历形式选择日期的组件。

实例程序 samp4_5 演示这些时间日期相关类的使用,其运行时界面如图 1 所示。

qt时间戳转换(qt时间戳转换日期格式)

datetime:日期时间。

date:日期,设置 datetime 时会自动改变 date,同样,设置 date 时,也会自动改变 datetime 里的日期。

time:时间,设置 datetime 时会自动改变 time,同样,设置 time 时,也会自动改变 datetime 里的时间。

maximumDateTime、 minimumDateTime:最大、最小日期时间。

maximumDate、minimumDate:最大、最小日期。

maximumTime、minimumTime:最大、最小时间。

currentSectionIndex:用序号表示的输入光标所在的段。

calendarPopup:是否允许弹出一个日历选择框。当取值为 true 时,右侧的输入按钮变成与 QComboBox 类似的下拉按钮,单击按钮时出现一个日历选择框,用于在日历上选择日期。对于 QTimeEdit,此属性无效。

displayFormat:显示格式,日期时间数据的显示格式,例如设置为“yyyy-MM-dd HH:mm:ss”,一个日期时间数据就显示为“2016-11-02 08:23:46”。

日期时间数据的获取与转换为字符串

“读取当前日期时间”按钮的 clicked() 信号的槽函数代码如下:

ui->editTime->setText(curDateTime.toString(Mhh:mm:ss”));ui->editDate->setText(curDateTime.toString(“yyyy-MM-dd”));ui->editDateTime->setText(curDateTime.toString(“yyyy-MM-dd hh:mm:ss”));

QDateTime::toString() 函数的函数原型是:

QString QDateTime::toString(const QString fiformat) const

它将日期时间数据按照 format 指定的格式转换为字符串。format 是一个字符串,包含一些特定的字符,表示日期或时间的各个部分,表 2 是用于日期时间显示的常用格式符。

在设置日期时间显示字符串格式时,还可以使用填字符,甚至使用汉字。例如,日期显示格式可以设置为:

curDateTime.toString (“yyyy 年 MM 月 dd 日”);

这样得到的字符串是“2016年11月21日”。

字符串转换为日期时间

同样的,也可以将字符串转换为 QTime、QDate 或 QDateTime 类型,使用静态函数 QDateTime::fromString(),其函数原型为:

QDateTime QDateTime::fromString(const QString &string, const QString &format)

其中,第 1 个参数 string 是日期时间字符串形式,第 2 个参数 format 是字符串表示的格式,按照表 2 的格式字符定义。

在程序运行时,手工修改“日期时间”后面文本框里的日期时间字符串,单击“设置日期时间”按钮,可以将文本框里的字符串转换为 QDateTime 变量,并设置为左侧 DateTimeEdit 组件的日期时间数据,代码如下:

void Dialog::on_btnSetDateTime_clicked(){ //字符串转换为QDateTime QString str=ui->editDateTime->text(); str=str.trimmed(); if (!str.isEmpty()) { QDateTime datetime=QDateTime::fromString(str,”yyyy-MM-dd hh:mm:ss”); ui->dateTimeEdit->setDateTime(datetime); }}

静态函数 QDateTime::fromString() 将一个字符串按照格式转换为日期时间类型。程序中的代码是:

datetime=QDateTime::fromString(str,”yyyy-MM-dd hh:mm:ss”);

这里将字符串 str 按照格式yyyy-MM-dd hh:mm:ss转换为日期时间变量,格式是指字符串 str 所表示的日期时间的格式。

QCalendarWidget 日历组件

图 1 窗体右侧是一个 QCalendarWidget 组件,它以日历的形式显示日期,可以用于日期选择。QCalendarWidget 有一个信号 selectionChanged(),在日历上选择的日期变化后会发射此信号,为此信号创建槽函数,编写代码如下:

void Dialog::on_calendarWidget_selectionChanged(){ //在日历上选择日期 QDate dt=ui->calendarWidget->selectedDate(); QString str=dt.toString(“yyyy年 M 月 d 日”); ui->editCalendar->setText(str);}

发表评论

登录后才能评论