📅  最后修改于: 2023-12-03 15:04:44.205000             🧑  作者: Mango
在编程中我们有时会遇到需要将时间戳(如 Unix 时间戳)转换为可读的日期时间字符串的情况。Qt 中也提供了一些工具来处理时间戳和日期时间字符串之间的转换。
在 Qt 中,时间戳是以自 1970 年 1 月 1 日午夜(格林威治标准时间)以来过去的秒数来表示的。这也被称为 Unix 时间戳。Qt 还提供了一些特定于时区的类和函数,例如 QDateTime
、QDate
和 QTime
。
要将 Qt Epoch 转换为日期时间字符串,您可以使用 QDateTime
类或一些相关函数。下面是一些示例:
QDateTime dateTime;
dateTime.setSecsSinceEpoch(0); // 从 Qt Epoch 开始
QString dateTimeString = dateTime.toString(Qt::ISODate); // "1970-01-01T00:00:00"
QDateTime dateTime;
dateTime.setSecsSinceEpoch(1483228800); // 2017 年 1 月 1 日 0 点钟
QString dateTimeString = dateTime.toString(Qt::ISODate); // "2017-01-01T00:00:00"
qint64 seconds = 1483228800;
QString dateTimeString = QDateTime::fromSecsSinceEpoch(seconds).toString(Qt::ISODate); // "2017-01-01T00:00:00"
要将日期时间字符串转换为 Qt Epoch,您可以使用 QDateTime
类或 QDateTime::fromString()
函数。下面是一些示例:
QString dateTimeString = "1970-01-01T00:00:00";
QDateTime dateTime = QDateTime::fromString(dateTimeString, Qt::ISODate);
qint64 seconds = dateTime.toSecsSinceEpoch(); // 0,Qt Epoch 开始
QString dateTimeString = "2017-01-01T00:00:00";
QDateTime dateTime = QDateTime::fromString(dateTimeString, Qt::ISODate);
qint64 seconds = dateTime.toSecsSinceEpoch(); // 1483228800,2017 年 1 月 1 日 0 点钟
在 Qt 中,您可以使用 QDateTime
类和一些相关函数轻松地将 Qt Epoch 和日期时间字符串之间进行转换。使用示例中的代码片段,您可以更轻松地处理时间戳和日期时间字符串的转换,在需要处理这种转换的项目中更加便利。