//獲取本地時間
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);
}