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

}

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