📅  最后修改于: 2023-12-03 15:27:09.349000             🧑  作者: Mango
在 C++ 中,获取系统时间可以有多种方式。本文将介绍三种不同的方法。
使用 time
函数和 localtime
函数来获取当前时间,并使用 strftime
函数将时间格式化为指定的格式。
代码如下:
#include <iostream>
#include <iomanip>
#include <ctime>
int main() {
std::time_t now = std::time(nullptr);
std::tm *local = std::localtime(&now);
char timeStr[80];
std::strftime(timeStr, 80, "%Y-%m-%d %H:%M:%S", local);
std::cout << timeStr << std::endl;
return 0;
}
其中 time
函数返回当前时间的秒数,localtime
函数将秒数转化为本地时间,strftime
函数用于格式化时间字符串。例如,"%Y-%m-%d %H:%M:%S" 的格式会将时间转化为 "2021-09-12 23:05:48" 的形式。
使用 std::chrono
库来获取当前系统时间,并使用 std::put_time
函数将时间格式化为指定的格式。
代码如下:
#include <iostream>
#include <iomanip>
#include <chrono>
int main() {
auto now = std::chrono::system_clock::now();
auto time = std::chrono::system_clock::to_time_t(now);
std::cout << std::put_time(std::localtime(&time), "%Y-%m-%d %H:%M:%S") << std::endl;
return 0;
}
其中 system_clock
类型表示系统时钟,now
函数获取当前时间,to_time_t
函数将时间转化为秒数,put_time
函数用于格式化时间字符串。
使用 GetLocalTime
函数来获取当前本地时间,并将时间转化为指定格式。
代码如下:
#include <iostream>
#include <iomanip>
#include <Windows.h>
int main() {
SYSTEMTIME st;
char timeStr[80];
GetLocalTime(&st);
std::sprintf(timeStr, "%04d-%02d-%02d %02d:%02d:%02d.%03d", st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond, st.wMilliseconds);
std::cout << timeStr << std::endl;
return 0;
}
其中 SYSTEMTIME
结构体表示系统时间,GetLocalTime
函数获取系统本地时间,sprintf
函数用于格式化时间字符串。
以上三种方法都可以用来获取系统时间,选择哪种方法根据实际需求来定。