C++ /qt 获取当前时间的几种方法
方法一:std标准函数方式
#include <iostream>
#include <ctime>
#include <chrono>
#include <iomanip>
int getCurFormatTime(char* fmtTime, bool convertTwsj=false)
{
// 使用high_resolution_clock获取当前时间点
auto now = std::chrono::high_resolution_clock::now();
// 将时间点转换为time_t以便转换为本地时间
std::time_t now_time = std::chrono::high_resolution_clock::to_time_t(now);
if (convertTwsj) {
now_time = now_time - 3600*8;
}
// 转换为本地时间并格式化
std::tm* local_time = std::localtime(&now_time);
// 输出格式化时间
std::_Put_time<char> a = std::put_time(local_time, "%Y-%m-%d %H:%M:%S");
sprintf(fmtTime, "%d-%02d-%02d %02d:%02d:%02d", a._M_tmb->tm_year+1900,a._M_tmb->tm_mon+1,
a._M_tmb->tm_mday, a._M_tmb->tm_hour, a._M_tmb->tm_min, a._M_tmb->tm_sec);
//qDebug()<< "当前系统时间:" << fmtTime;
return 0;
}
方式二,qt
qt 获取当前时间
获取当前时间可以使用Qt的QDateTime类来实现。以下是几种不同的代码实现方法:
方法一:使用静态函数QDateTime::currentDateTime()获取当前时间。
#include <QDateTime>
QDateTime currentTime = QDateTime::currentDateTime();
qDebug() << "Current Time: " << currentTime;
方法二:使用QDateTime类的构造函数和QDateTime::currentDateTime()函数
#include <QDateTime>
QDateTime currentTime(QDateTime::currentDateTime());
qDebug() << "Current Time: " << currentTime;
方法三:使用QDateTime::currentDateTimeUtc()获取当前协调世界时间(UTC)。
#include <QDateTime>
QDateTime currentUtcTime = QDateTime::currentDateTimeUtc();
qDebug() << "Current UTC Time: " << currentUtcTime.toLocalTime();
方法四:使用QDateTime::currentMSecsSinceEpoch()获取当前时间的毫秒数。
#include <QDateTime>
qint64 currentTimeMs = QDateTime::currentMSecsSinceEpoch();
qDebug() << "Current Time (in milliseconds): " << currentTimeMs;
字符串时间转本地时间
#include <QDateTime>
#include <QString>
#include <QDebug>
int main() {
// 假设我们有一个字符串格式的时间
QString timeString = "2023-04-01 12:00:00";
// 将字符串转换为QDateTime对象
QDateTime dateTime = QDateTime::fromString(timeString, "yyyy-MM-dd hh:mm:ss");
// 如果需要转换为本地时间,可以使用以下代码
QDateTime localDateTime = dateTime.toLocalTime();
// 打印转换后的时间
qDebug() << "Local Time: " << localDateTime.toString("yyyy-MM-dd hh:mm:ss");
return 0;
}
字符串时间转UTC时间
#include <QDateTime>
#include <QTimeZone>
#include <QString>
#include <QDebug>
int main(int argc, char *argv[])
{
// 假设我们有一个字符串表示的本地时间
QString localTimeString = "2023-04-01 12:00:00";
// 使用QDateTime将字符串转换为本地时间的QDateTime对象
QDateTime localDateTime = QDateTime::fromString(localTimeString, "yyyy-MM-dd hh:mm:ss");
// 获取当前系统时区
QTimeZone systemTimeZone = QTimeZone::systemTimeZone();
// 转换为UTC时间
QDateTime utcDateTime = localDateTime.toUTC(systemTimeZone);
// 输出UTC时间
qDebug() << "UTC Time: " << utcDateTime.toString("yyyy-MM-dd hh:mm:ss");
return 0;
}
原文地址:https://blog.csdn.net/huangjiazhi_/article/details/144152225
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!