[TD-13772]<fix>: redefine timezone api.
This commit is contained in:
parent
8b89657853
commit
d65edaadf7
|
@ -48,16 +48,11 @@
|
||||||
void taosSetSystemTimezone(const char *inTimezone, char *outTimezone, int8_t *outDaylight) {
|
void taosSetSystemTimezone(const char *inTimezone, char *outTimezone, int8_t *outDaylight) {
|
||||||
if (inTimezone == NULL || inTimezone[0] == 0) return;
|
if (inTimezone == NULL || inTimezone[0] == 0) return;
|
||||||
|
|
||||||
#ifdef WINDOWS
|
#if defined(_TD_WINDOWS_64) || defined(_TD_WINDOWS_32)
|
||||||
char winStr[TD_LOCALE_LEN * 2];
|
char winStr[TD_LOCALE_LEN * 2];
|
||||||
sprintf(winStr, "TZ=%s", inTimezone);
|
sprintf(winStr, "TZ=%s", inTimezone);
|
||||||
putenv(winStr);
|
putenv(winStr);
|
||||||
#else
|
|
||||||
setenv("TZ", inTimezone, 1);
|
|
||||||
#endif
|
|
||||||
tzset();
|
tzset();
|
||||||
|
|
||||||
/*
|
|
||||||
* get CURRENT time zone.
|
* get CURRENT time zone.
|
||||||
* system current time zone is affected by daylight saving time(DST)
|
* system current time zone is affected by daylight saving time(DST)
|
||||||
*
|
*
|
||||||
|
@ -75,15 +70,34 @@ void taosSetSystemTimezone(const char *inTimezone, char *outTimezone, int8_t *ou
|
||||||
|
|
||||||
int32_t tz = (int32_t)((-timezone * MILLISECOND_PER_SECOND) / MILLISECOND_PER_HOUR);
|
int32_t tz = (int32_t)((-timezone * MILLISECOND_PER_SECOND) / MILLISECOND_PER_HOUR);
|
||||||
tz += daylight;
|
tz += daylight;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* format:
|
* format:
|
||||||
* (CST, +0800)
|
* (CST, +0800)
|
||||||
* (BST, +0100)
|
* (BST, +0100)
|
||||||
*/
|
*/
|
||||||
|
sprintf(outTimezone, "(%s, %s%02d00)", tzname[daylight], tz >= 0 ? "+" : "-", abs(tz));
|
||||||
|
*outDaylight = daylight;
|
||||||
|
|
||||||
|
#elif defined(_TD_DARWIN_64)
|
||||||
|
|
||||||
|
setenv("TZ", inTimezone, 1);
|
||||||
|
tzset();
|
||||||
|
int32_t tz = (int32_t)((-timezone * MILLISECOND_PER_SECOND) / MILLISECOND_PER_HOUR);
|
||||||
|
tz += daylight;
|
||||||
|
|
||||||
sprintf(outTimezone, "(%s, %s%02d00)", tzname[daylight], tz >= 0 ? "+" : "-", abs(tz));
|
sprintf(outTimezone, "(%s, %s%02d00)", tzname[daylight], tz >= 0 ? "+" : "-", abs(tz));
|
||||||
*outDaylight = daylight;
|
*outDaylight = daylight;
|
||||||
|
|
||||||
|
#else
|
||||||
|
setenv("TZ", inTimezone, 1);
|
||||||
|
tzset();
|
||||||
|
int32_t tz = (int32_t)((-timezone * MILLISECOND_PER_SECOND) / MILLISECOND_PER_HOUR);
|
||||||
|
tz += daylight;
|
||||||
|
sprintf(outTimezone, "(%s, %s%02d00)", tzname[daylight], tz >= 0 ? "+" : "-", abs(tz));
|
||||||
|
*outDaylight = daylight;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void taosGetSystemTimezone(char *outTimezone) {
|
void taosGetSystemTimezone(char *outTimezone) {
|
||||||
|
|
Loading…
Reference in New Issue