#include<iostream>
#include<chrono>
#include<thread>
#include <time.h>
static uint64_t now_to_ms()
{
return std::chrono::duration_cast<std::chrono::milliseconds>
(std::chrono::system_clock::now().time_since_epoch()).count();
}
static uint64_t to_seconds(const std::chrono::system_clock::time_point &time)
{
return std::chrono::duration_cast<std::chrono::seconds>
(time.time_since_epoch()).count();
}
static std::string to_str(const std::chrono::system_clock::time_point &time)
{
char _time[25] = {0};
time_t tt = std::chrono::system_clock::to_time_t(time);
struct tm *local_time=localtime(&tt);
strftime(_time, 22, "%Y-%m-%d %H:%M:%S", local_time);
return std::string(_time);
}
int main()
{
char *wday[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
time_t timep(0);
printf("%d \n", timep);
struct tm *p;
time(&timep); /*获得time_t结构的时间,UTC时间*/
printf("%d \n", timep);
auto tmp = std::chrono::system_clock::from_time_t(timep);
printf("%d \n", to_seconds(tmp));
std::this_thread::sleep_for(std::chrono::seconds(2));
time_t timep2(0);
time(&timep2); /*获得time_t结构的时间,UTC时间*/
printf("%d \n", timep2);
auto tmp2 = std::chrono::system_clock::from_time_t(timep2);
printf("%d \n", to_seconds(tmp2));
printf("%f \n", difftime(timep2, timep));
p = localtime(&timep); /*转换为struct tm结构的当地时间*/
printf("%d/%d/%d ", 1900 + p->tm_year, 1 + p->tm_mon, p->tm_mday);
printf("%s %d:%d:%d\n", wday[p->tm_wday], p->tm_hour, p->tm_min, p->tm_sec);
return 0;
}
0
1537509076
1537509076
1537509078
1537509078
2.000000
2018/9/21 Fri 13:51:16