- Notifications
You must be signed in to change notification settings - Fork 13.3k
Closed
Milestone
Description
Basic Infos
- This issue complies with the issue POLICY doc.
- I have read the documentation at readthedocs and the issue is not addressed there.
- I have tested that the issue is present in current master branch (aka latest git).
- I have searched the issue tracker for a similar issue.
- If there is a stack dump, I have decoded it.
- I have filled out all fields below.
Platform
- Hardware: ESP-12E (LoLin NodeMCU V3)
- Core Version:ba50bd5
- Development Env: Arduino IDE 1.8.10
- Operating System: Ubuntu LTS 18.04.2
Settings in IDE
- Module: NodeMCU 1.0 (ESP-12E Module)
- Flash Size: 4MB
- lwip Variant: v2 Lower Memory
- CPU Frequency: 80Mhz
- Upload Using: SERIAL
- Upload Speed: 115200
Problem Description
No matter what value I assign to the timezone_sec
arg in
Arduino/cores/esp8266/time.cpp
Line 101 in 36c369b
void configTime(int timezone_sec, int daylightOffset_sec, const char* server1, const char* server2, const char* server3) |
the output of
time_t now = time(nullptr); Serial.println(time(&now)); Serial.println(ctime(&now));
will be UTC+8. So if i set timezone_sec=0
i would expect the output of GMT/UTC but it won't be.
If i set
Arduino/cores/esp8266/sntp-lwip2.cpp
Line 103 in 36c369b
static sint32 time_zone = 8 * (60 * 60); // espressif HQ's default timezone |
to 0 instead, then you will get the time in GMT/UTC.
It seems that the method
Arduino/cores/esp8266/sntp-lwip2.cpp
Line 437 in 36c369b
bool sntp_set_timezone_in_seconds(sint32 timezone) |
hasn't any effect to the global variable
time_zone
Also have a look at #6675
MCVE Sketch
#include <ESP8266WiFi.h> #include <time.h> const char* ssid = "..."; const char* password = "..."; const int timezone_sec = 0; const int daylightOffset_sec = 0; const char* ntpServer = "pool.ntp.org"; void setup() { Serial.begin(115200); Serial.printf("Connecting to %s ", ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(" CONNECTED"); Serial.println("Call configTime..."); configTime(timezone_sec, daylightOffset_sec, ntpServer); Serial.println("Now it's:"); time_t now = time(nullptr); Serial.println(time(&now)); Serial.println(ctime(&now)); WiFi.disconnect(true); WiFi.mode(WIFI_OFF); } void loop() { }
Debug Messages
Run at Mon Oct 28 08:03:51 2019 (GMT/UTC)
Connecting to xxx ....... CONNECTED Call configTime... Now it's: 1572275031 Mon Oct 28 15:03:51 2019