//获取本地时间
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);
}