调整时间获取方法
This commit is contained in:
parent
4bef595693
commit
fb52bb4e99
|
@ -372,11 +372,9 @@ extern "C"
|
|||
}
|
||||
std::string current_time(void)
|
||||
{
|
||||
char buf[40];
|
||||
time_t t = time(NULL);
|
||||
tm* l = localtime(&t);
|
||||
char buf[40] = { 0 };
|
||||
|
||||
sprintf(buf, "%d-%02d-%02d %02d:%02d:%02d", l->tm_year + 1900, l->tm_mon + 1, l->tm_mday, l->tm_hour, l->tm_min, l->tm_sec);
|
||||
get_current_time(buf);
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
|
|
@ -382,6 +382,48 @@ extern "C"
|
|||
|
||||
return g_unk_statu;
|
||||
}
|
||||
|
||||
void get_current_time(char* tmbuf, struct tm* t)
|
||||
{
|
||||
#if defined(WIN32) || defined(_WIN64)
|
||||
static long bias = -1;
|
||||
static bool as_start = true;
|
||||
|
||||
if (bias == -1)
|
||||
{
|
||||
_get_timezone(&bias);
|
||||
as_start = hg_log::ini_get("time", "adjust") != "no";
|
||||
}
|
||||
#endif
|
||||
|
||||
time_t now = time(nullptr);
|
||||
struct tm* l = localtime(&now);
|
||||
|
||||
#if defined(WIN32) || defined(_WIN64)
|
||||
long after = 0;
|
||||
if (as_start && _get_timezone(&after) == 0 &&
|
||||
after != bias)
|
||||
{
|
||||
now += bias;
|
||||
l = localtime(&now);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (t)
|
||||
*t = *l;
|
||||
if (tmbuf)
|
||||
sprintf(tmbuf, "%04d-%02d-%02d %02d:%02d:%02d", l->tm_year + 1900, l->tm_mon + 1, l->tm_mday, l->tm_hour, l->tm_min, l->tm_sec);
|
||||
}
|
||||
void get_current_time_w(wchar_t* tmbuf, struct tm* t)
|
||||
{
|
||||
struct tm tmp = { 0 }, * l = &tmp;
|
||||
|
||||
get_current_time(nullptr, l);
|
||||
if (t)
|
||||
*t = *l;
|
||||
if (tmbuf)
|
||||
swprintf(tmbuf, L"%04d-%02d-%02d %02d:%02d:%02d", l->tm_year + 1900, l->tm_mon + 1, l->tm_mday, l->tm_hour, l->tm_min, l->tm_sec);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -453,6 +453,16 @@ extern "C"{
|
|||
// Function: 图像状态名称
|
||||
const char* hg_scanner_image_statu_name(int img_statu);
|
||||
|
||||
// Function: 获取当前时间字符串
|
||||
//
|
||||
// Parameters: tmbuf - 用于接收时间字符串,不小于40个字符长度
|
||||
//
|
||||
// t - 用于接收原始的时间结构
|
||||
//
|
||||
// Return: void
|
||||
void get_current_time(char* tmbuf, struct tm* t = nullptr);
|
||||
void get_current_time_w(wchar_t* tmbuf, struct tm* t = nullptr);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue