答案是使用localtime和strftime將時(shí)間戳轉(zhuǎn)換為"2025-04-05 12:34:56"格式的字符串。通過localtime獲取本地時(shí)區(qū)的tm結(jié)構(gòu),再用strftime按指定格式寫入字符數(shù)組,最后轉(zhuǎn)為string返回。
在C++中將時(shí)間戳轉(zhuǎn)換為可讀的日期字符串,通常使用標(biāo)準(zhǔn)庫中的 ctime 頭文件提供的函數(shù)。最常用的方法是通過 localtime 或 gmtime 將時(shí)間戳轉(zhuǎn)為結(jié)構(gòu)化時(shí)間,再用 strftime 格式化為字符串。
適用于本地時(shí)區(qū)的時(shí)間轉(zhuǎn)換。以下是一個(gè)完整示例:
// 示例:將時(shí)間戳轉(zhuǎn)為 "2025-04-05 12:34:56" 格式
#include <iostream>
#include <ctime>
#include <string>
std::string timestampToString(time_t timestamp) {
????char buffer[80];
????tm* timeinfo = localtime(×tamp);
????strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", timeinfo);
????return std::string(buffer);
}
int main() {
????time_t ts = 1743845696; // 示例時(shí)間戳
????std::cout
????return 0;
}
如果你希望輸出的是UTC(世界協(xié)調(diào)時(shí)間),應(yīng)使用 gmtime 代替 localtime:
tm* timeinfo = gmtime(×tamp);
strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", timeinfo);
這樣可以避免本地時(shí)區(qū)影響,適合日志記錄或跨時(shí)區(qū)系統(tǒng)。
立即學(xué)習(xí)“C++免費(fèi)學(xué)習(xí)筆記(深入)”;
新一代 AI 字幕工作站,為創(chuàng)作者提供字幕制作、學(xué)習(xí)資源、會(huì)議記錄、字幕制作等場(chǎng)景,一鍵為您的視頻生成精準(zhǔn)的字幕。
strftime 支持多種格式控制符:
localtime 和 gmtime 返回的是指向靜態(tài)內(nèi)存的指針,不能長(zhǎng)期持有。多線程環(huán)境下建議使用可重入版本:
tm timeinfo;
localtime_r(×tamp, &timeinfo); // Linux/Unix
// 或 Windows 上使用 localtime_s
strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", &timeinfo);
基本上就這些,不復(fù)雜但容易忽略時(shí)區(qū)和線程安全問題。
以上就是c++++中如何將時(shí)間戳轉(zhuǎn)換為可讀日期字符串_c++時(shí)間戳轉(zhuǎn)日期字符串方法的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
c++怎么學(xué)習(xí)?c++怎么入門?c++在哪學(xué)?c++怎么學(xué)才快?不用擔(dān)心,這里為大家提供了c++速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)