]> granicus.if.org Git - esp-idf/commitdiff
use localtime_r instead of gmtime to get timezone
authorLuc <luc.lebosse@gmail.com>
Sat, 30 Sep 2017 13:44:35 +0000 (21:44 +0800)
committerLuc <luc.lebosse@gmail.com>
Sat, 30 Sep 2017 13:44:35 +0000 (21:44 +0800)
on fatfs

components/fatfs/src/diskio.c

index 7ccc1379f113b807895a80761c6fda67618019b5..b9bc4cc417a7971317b906dd529c88783f04256b 100644 (file)
@@ -80,12 +80,13 @@ DRESULT ff_disk_ioctl (BYTE pdrv, BYTE cmd, void* buff)
 DWORD get_fattime(void)\r
 {\r
     time_t t = time(NULL);\r
-    struct tm *tmr = gmtime(&t);\r
-    int year = tmr->tm_year < 80 ? 0 : tmr->tm_year - 80;\r
+    struct tm tmr;\r
+    localtime_r(&t, &tmr);\r
+    int year = tmr.tm_year < 80 ? 0 : tmr.tm_year - 80;\r
     return    ((DWORD)(year) << 25)\r
-            | ((DWORD)(tmr->tm_mon + 1) << 21)\r
-            | ((DWORD)tmr->tm_mday << 16)\r
-            | (WORD)(tmr->tm_hour << 11)\r
-            | (WORD)(tmr->tm_min << 5)\r
-            | (WORD)(tmr->tm_sec >> 1);\r
+            | ((DWORD)(tmr.tm_mon + 1) << 21)\r
+            | ((DWORD)tmr.tm_mday << 16)\r
+            | (WORD)(tmr.tm_hour << 11)\r
+            | (WORD)(tmr.tm_min << 5)\r
+            | (WORD)(tmr.tm_sec >> 1);\r
 }\r