C++ /qt 获取当前时间的几种方法

方法一:std标准函数方式

cpp 复制代码
#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

cpp 复制代码
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;

字符串时间转本地时间

cpp 复制代码
#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时间

cpp 复制代码
#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;
}
相关推荐
dly_blog16 分钟前
setup 函数完整指南!
前端·javascript·vue.js
GoWjw24 分钟前
在C&C++中结构体的惯用方法
c语言·开发语言·c++
霍理迪26 分钟前
基础CSS语法
前端·css
静心观复28 分钟前
Java 中,`1 << 1`
java·开发语言
粟悟饭&龟波功32 分钟前
【GitHub热门项目精选】(2025-12-19)
前端·人工智能·后端·github
明洞日记33 分钟前
【VTK手册027】VTK 颜色连续映射:vtkColorTransferFunction 深度解析与实战指南
c++·图像处理·算法·vtk·图形渲染
爱睡觉的王宇昊37 分钟前
单体架构详细解析:从概念到实践--购物网站搭建
java·spring boot·架构·团队开发·个人开发·敏捷流程
Bruce_kaizy39 分钟前
c++单调数据结构————单调栈,单调队列
开发语言·数据结构·c++
默凉42 分钟前
win 制作vs离线安装包
c++
不思念一个荒废的名字43 分钟前
【黑马JavaWeb+AI知识梳理】Web后端开发04-登录认证
java·后端