У меня есть временная метка Unix, и мне нужно преобразовать ее в человеко-читаемую дату + время. Как это можно сделать в Qt?
Как конвертировать из временной метки в дату в Qt?
Ответ 1
int unixTime = 1234567890;
QDateTime timestamp;
timestamp.setTime_t(unixTime);
qDebug() << timestamp.toString(Qt::SystemLocaleShortDate);
Это должно помочь тебе. Как сказал Мэтью, см. QDateTime.setTime_t, а также QDateTime.toString. У toString есть перечисление с несколькими различными опциями, а также перегрузка, в которой вы можете передать строку, позволяющую выполнить любое количество настроек.
Ответ 2
Ответ 3
Вы можете использовать статическую функцию: fromTime_t, например:
qDebug() < QDateTime:: fromTime_t (your_time_stamp).toString( "dd/MM/yyyy hh: mm: ss" );
Ответ 4
Один хороший пример
qint64 qiTimestamp=QDateTime::currentMSecsSinceEpoch();
QDateTime dt;
dt.setTime_t(qiTimestamp/1000);
ui->lineEdit_DateTime->setText(dt.toString("yyyy-MM-dd hh:mm:ss"));
Ответ 5
Обратите внимание, что QDateTime::setTime_t()
устарела, используйте QDateTime::setSecsSinceEpoch()
. То же самое для fromTime_t()
.