1.在写日志的时候,我们需要打印年月日时分秒毫秒,window下:
GetSystemTime:所返回的是UTC.
GetLocalTime,返回的是本地时间
typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
WINBASEAPI
VOID
WINAPI
GetLocalTime(
_Out_ LPSYSTEMTIME lpSystemTime
);
WINBASEAPI
VOID
WINAPI
GetSystemTime(
_Out_ LPSYSTEMTIME lpSystemTime
);
2.c++ std标准库也提供了一些函数,在#include<chrono>下。
获取当前时间:
获取当前时间:
std::chrono::system_clock::time_point cur_time = std::chrono::system_clock::now();
初始化时间的第2秒:
std::chrono::time_point<std::chrono::system_clock,std::chrono::duration<long long,std::ratio<1,1000>>> test_time(std::chrono::seconds(2));
std::time_t st_time = std::chrono::system_clock::to_time_t(test_time);
struct tm * temp = std::localtime(&st_time);
printf("%04d-%02d-%02d %02d:%02d:%02d\n", temp->tm_year, temp->tm_mon+1, temp->tm_mday, temp->tm_hour, temp->tm_min, temp->tm_sec);
打印年月日时分秒毫秒:
auto current_time = std::chrono::system_clock::now();
std::chrono::milliseconds milliseconds_ = std::chrono::duration_cast<std::chrono::milliseconds>(current_time.time_since_epoch());
std::chrono::seconds seconds_ =
std::chrono::duration_cast<std::chrono::seconds>(current_time.time_since_epoch());
std::time_t st_time = std::chrono::system_clock::to_time_t(current_time);
struct tm * temp = std::localtime(&st_time);
printf("%04d-%02d-%02d %02d:%02d:%02d,%03lld\n", temp->tm_year + 1900, temp->tm_mon + 1, temp->tm_mday,
temp->tm_hour, temp->tm_min, temp->tm_sec, milliseconds_%seconds_);