time_t

#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;
}
 


1537509076 
1537509076 
1537509078 
1537509078 
2.000000 
2018/9/21 Fri 13:51:16

猜你喜欢

转载自blog.csdn.net/f110300641/article/details/82800260