我有一个Unix时间戳,我需要将其转换为人类可读日期+时间。如何在Qt中完成?
答案 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)