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;
}
相关推荐
Miketutu3 分钟前
Spring MVC消息转换器
java·spring
乔冠宇3 分钟前
Java手写简单Merkle树
java·区块链·merkle树
我不是代码教父19 分钟前
[原创](Modern C++)现代C++的关键性概念: 流格式化
c++·字符串格式化·流格式化·cout格式化
利刃大大36 分钟前
【回溯+剪枝】找出所有子集的异或总和再求和 && 全排列Ⅱ
c++·算法·深度优先·剪枝
LUCIAZZZ1 小时前
简单的SQL语句的快速复习
java·数据库·sql
子燕若水1 小时前
mac 手工安装OpenSSL 3.4.0
c++
*TQK*1 小时前
ZZNUOJ(C/C++)基础练习1041——1050(详解版)
c语言·c++·编程知识点
komo莫莫da1 小时前
寒假刷题Day19
java·开发语言
ElseWhereR2 小时前
C++ 写一个简单的加减法计算器
开发语言·c++·算法
还是鼠鼠2 小时前
图书管理系统 Axios 源码 __删除图书功能
前端·javascript·vscode·ajax·前端框架·node.js·bootstrap