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;
}
相关推荐
geovindu14 小时前
java:Observer Pattern
java·开发语言·后端·观察者模式·设计模式·行为模式
leoZ23114 小时前
2026-09-08-mysql-57-init-walkthrough
前端·javascript·数据库·vue.js·opencv·mysql·adb
lemon_sjdk14 小时前
ObservableNumberValue接口
java·javafx
wxwx_bscxy32214 小时前
springboot巡更系统10192
java·spring boot·后端·巡更系统
hansang_IR14 小时前
【题解】P9753 [CSP-S 2023] 消消乐
数据结构·c++·算法
竞赛考级题库14 小时前
202606 青少年等级考试C/C++真题一级 建议答题时长:60min
java·c语言·c++
大树9114 小时前
把 Java 项目从手动 SCP 升级到 Gitee Go 自动部署:一份踩坑实录
java·golang·gitee
paopaokaka_luck14 小时前
非遗文物数字化系统(AI非遗问答、ONNX图像识别、协同过滤推荐、ECharts数据分析、非遗知识浏览与互动、文创商城订单闭环、文化活动报名签到、社区交流)
前端·javascript·vue.js·人工智能·数据分析·echarts
乘风gg14 小时前
AI Coding 提效 2 倍是真的吗?到底怎么衡量效果
前端·ai编程·claude
用户9210802628614 小时前
从对象到原型链:理解 this、构造函数和 new
前端