diff options
| author | zhengchao <[email protected]> | 2019-02-26 19:45:31 +0600 |
|---|---|---|
| committer | zhengchao <[email protected]> | 2019-02-26 19:45:31 +0600 |
| commit | 05c550e46b08c7718d0bc83d23000baade042451 (patch) | |
| tree | aeb7f11c56338d7341426191a4ad57b62ae3ec07 | |
| parent | df025b3d9fa539eb09456a3d70f317ff697bf1a4 (diff) | |
修复log master key的注释中,使用MESA handle logger代码引入的时间固定为东8区的bug。
| -rw-r--r-- | common/src/tfe_utils.cpp | 42 |
1 files changed, 7 insertions, 35 deletions
diff --git a/common/src/tfe_utils.cpp b/common/src/tfe_utils.cpp index 10ff3ff..0497726 100644 --- a/common/src/tfe_utils.cpp +++ b/common/src/tfe_utils.cpp @@ -31,46 +31,18 @@ char* tfe_strdup(const char* s) } char *tfe_thread_safe_ctime(const time_t *tp, char *buf, int len) { - unsigned int year, month, day, weekday, hour, min, sec; - unsigned int year_days = 365; - unsigned int month_days[12] = - {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; + struct tm local_time; + time_t now; static unsigned char weekday_str[7][4] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; static unsigned char month_str[12][4] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; - sec = * tp; - min = sec / 60; sec = sec % 60; - hour = min / 60; min = min % 60; hour += 8; - day = hour / 24; hour = hour % 24; - weekday = day % 7; weekday = (weekday + 4) % 7; - - for(year = 1970; day >= year_days;) - { - day -= year_days; - year ++; - - if(0 == year % 4 && (0 != year % 100 || 0 == year % 400)) - year_days = 366; - else year_days = 365; - } - - if(366 == year_days) month_days[1] = 29; - - //bug fix by yw 20120808 - for(month = 0; day >= month_days[month];) - { - day -= month_days[month]; - month ++; - } - - /* - snprintf(buf, len, "%02d:%02d:%02d, %04d/%02d/%02d, %s", - hour, min, sec, year, month, day, weekday_str[week_day]); - */ - snprintf(buf, len, "%s %s %d %02d:%02d:%02d %d", weekday_str[weekday], - month_str[month], day + 1, hour, min, sec, year); + time(&now); + if(NULL == (localtime_r(&now, &local_time))) + return NULL; + len = snprintf(buf, len, "%s %s %d %02d:%02d:%02d %d", weekday_str[local_time.tm_wday], + month_str[local_time.tm_mon], local_time.tm_mday, local_time.tm_hour, local_time.tm_min, local_time.tm_sec, local_time.tm_year+1900); return buf; } //replacement of glibc scandir, to adapt dictator malloc wrap |
