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;
}
相关推荐
我不只是切图仔20 分钟前
我只是想给网站加个注册验证码,咋就那么难!
前端·后端
野犬寒鸦22 分钟前
力扣hot100:相交链表与反转链表详细思路讲解(160,206)
java·数据结构·后端·算法·leetcode
该用户已不存在1 小时前
macOS是开发的终极进化版吗?
前端·后端
小豆包api1 小时前
小豆包AI API × Nano Banana:3D手办 + AI视频生成,「动起来」的神级玩法!
前端·api
UnnamedOrange1 小时前
ROS2 配置 linter 的代码格式化工具为 clang-format
c++·cmake
Dobby_051 小时前
【面试题】C++系列(一)
c++·面经
ytadpole1 小时前
揭秘设计模式:工厂模式的五级进化之路
java·设计模式
计算机毕业设计木哥1 小时前
计算机毕设选题:基于Python+Django的B站数据分析系统的设计与实现【源码+文档+调试】
java·开发语言·后端·python·spark·django·课程设计
失散131 小时前
分布式专题——1.2 Redis7核心数据结构
java·数据结构·redis·分布式·架构
一拳一个呆瓜1 小时前
【MFC】对话框节点属性:Language(语言)
c++·mfc