unix时间获取转换

//获取本地时间

int getLocalTime_cpc(char *dateTime)

{

    time_t t;

    time(&t);

    struct tm *gt = localtime(&t);

    strftime(dateTime, 14, "%Y%m%d%H%M%S", gt);

    return 0;

}

 

//获取大端字节序的unix时间

int getUnixTime_cpc(BYTE *unixDateTime)

{

    //获取当前时间

    char dateTime[15] = {0};

    char tmpUnixTime[4] = {0};

    char printUnixTime[4] = {0};

    getLocalTime_cpc(dateTime);

 

    //将格式化时间转为结构体

    struct tm tm;

    strptime(dateTime, "%Y%m%d%H%M%S", &tm);

    //获取时间戳

    unsigned long ft = mktime(&tm);

 

    for (int i = 0; i < 4; i++)

    {

        tmpUnixTime[i] = ft >> ((3 - i) * 8);

    }

    memcpy(unixDateTime, tmpUnixTime, sizeof(tmpUnixTime));

    return 0;

}

 

//将时间戳转化为时间

int stampTofTime_cpc(unsigned long *lTime, BYTE *dateTime)

{

    handPos_log_error(DIAGLOG_ERR, "begin stampTofTime_cpc  %ul", lTime);

    struct tm *gt = localtime(lTime);

    handPos_log_error(DIAGLOG_ERR, "stampTofTime_cpc");

    strftime(dateTime, 14, "%Y%m%d%H%M%S", gt);

    return 0;

}

 

//将大端字节序的unix时间转为格式化字符串

int UnixTimeTofTime_cpc(BYTE *unixDateTime, BYTE *dateTime)

{

    //调整字节序

    unsigned long lTmie;

    BYTE timeBuffer[4] = {0};

 

    for (int i = 0; i < 4; i++)

    {

        timeBuffer[i] = unixDateTime[3 - i];

    }

    //数据拷贝

    memcpy(&lTmie, timeBuffer, sizeof(timeBuffer));

 

    //打印暂时的时间

    char printBuffer[100] = {0};

    bytesToHex((BYTE *)unixDateTime, 4, (BYTE *)printBuffer);

    return stampTofTime_cpc(&lTmie, dateTime);

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章