summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorMeco Man <[email protected]>2021-05-01 05:51:18 +0800
committerMeco Man <[email protected]>2021-05-01 05:52:55 +0800
commita7a3ca9f0290131842f1a40bb8dca1a9490e4d27 (patch)
treeec3a2ce69af7910beb0d4ca50b5d1ba261a53a41 /components
parent79a452b26d5499466c111d6fceac5b628ff7fdf2 (diff)
增加手动设置时区的功能
Diffstat (limited to 'components')
-rw-r--r--components/libc/Kconfig8
-rw-r--r--components/libc/compilers/common/time.c4
2 files changed, 9 insertions, 3 deletions
diff --git a/components/libc/Kconfig b/components/libc/Kconfig
index 49b97481d1..8a790c298d 100644
--- a/components/libc/Kconfig
+++ b/components/libc/Kconfig
@@ -55,8 +55,14 @@ endif
if RT_USING_LIBC != y
config RT_LIBC_USING_TIME
- bool "Enable TIME FUNCTIONS WITHOUT COMPILER'S LIBC"
+ bool "Enable time functions without compiler's libc"
default y
endif
+config RT_LIBC_FIXED_TIMEZONE
+ depends on (RT_LIBC_USING_TIME || RT_USING_LIBC)
+ int "Manually set a fixed time zone (UTC+)"
+ range -12 12
+ default 8
+
endmenu
diff --git a/components/libc/compilers/common/time.c b/components/libc/compilers/common/time.c
index 33d8907165..8dda257937 100644
--- a/components/libc/compilers/common/time.c
+++ b/components/libc/compilers/common/time.c
@@ -214,7 +214,7 @@ struct tm* localtime_r(const time_t* t, struct tm* r)
time_t local_tz;
int utc_plus;
- utc_plus = 8; /* GMT: UTC+8 */
+ utc_plus = RT_LIBC_FIXED_TIMEZONE;
local_tz = *t + utc_plus * 3600;
return gmtime_r(&local_tz, r);
}
@@ -233,7 +233,7 @@ time_t mktime(struct tm * const t)
time_t timestamp;
int utc_plus;
- utc_plus = 8; /* GMT: UTC+8 */
+ utc_plus = RT_LIBC_FIXED_TIMEZONE;
timestamp = timegm(t);
timestamp = timestamp - 3600 * utc_plus;
return timestamp;