c++ window 时间函数

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_);



 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值