如何在Qt中从时间戳转换为日期?

时间:2010-05-29 12:36:50

标签: qt datetime timestamp

我有一个Unix时间戳,我需要将其转换为人类可读日期+时间。如何在Qt中完成?

6 个答案:

答案 0 :(得分:24)

int unixTime = 1234567890;
QDateTime timestamp;
timestamp.setTime_t(unixTime);
qDebug() << timestamp.toString(Qt::SystemLocaleShortDate);

这应该让你去。像马修说的那样,见QDateTime.setTime_t,以及QDateTime.toString。 toString有一个带有几个不同选项的枚举,以及一​​个重载,你可以传递一个字符串,允许你喜欢多少自定义。

答案 1 :(得分:6)

答案 2 :(得分:1)

一个很好的例子

qint64 qiTimestamp=QDateTime::currentMSecsSinceEpoch();
QDateTime dt;
dt.setTime_t(qiTimestamp/1000);
ui->lineEdit_DateTime->setText(dt.toString("yyyy-MM-dd hh:mm:ss"));

答案 3 :(得分:1)

您可以使用静态功能:&#34; fromTime_t&#34;,如:

qDebug()&lt;&lt; QDateTime :: fromTime_t(your_time_stamp).toString(&#34; dd / MM / yyyy hh:mm:ss&#34;);

答案 4 :(得分:0)

请注意,QDateTime::setTime_t()已过时,请使用QDateTime::setSecsSinceEpoch()。与fromTime_t()相同。

答案 5 :(得分:0)

如上所述,这里是一个有效的示例(Qt 5),而不是使用过时的_t成员。

qint64 llTS=1591132400;
QString szFull=QDateTime::fromSecsSinceEpoch(llTS).toString("dddd d MMMM yyyy hh:mm:ss");

szFull 2020年6月2日,星期二23:13:20

来源:QDateTime (Qt 5)

日期格式:QDate

时间格式:QTime