Skip to content

configTime(TZ,DS,server) gives wrong offset #7319

Closed
@Juppit

Description

@Juppit
  • [*] 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-12]
  • Core Version: [2.7.0 2.7.1]
  • Development Env: [Arduino IDE]
  • Operating System: [WindowsS]

Settings in IDE

  • Module: [Wemos D1 mini r2]
  • lwip Variant: [v2.1]
  • Upload Using: [OTA or SERIAL]
  • Upload Speed: [19200)
  • all other setings are untached/default, not visible

Problem Description

The old configTime api with timezone and daylight in seconds produces wrong timestamp.
To generate the right timestamps one can use negative timezone an daylight setting.

This appears after core version 2.6.3.
Git version 2.7.0-dev-nightly+20200218 was still correct.

MCVE Sketch

#include "pass.h"  // MY_SSID, MY_PWD
#include <ESP8266WiFi.h>

static int tz = -1; // start with GMT-1
static int ds = 0;  // no daylight time

static time_t now = 0;

void setup() {
  Serial.begin(19200);
  Serial.printf("\nCORE version is %s", ESP.getCoreVersion().c_str());

  WiFi.mode(WIFI_STA);
  WiFi.begin(MY_SSID, MY_PWD);
  while (WiFi.status() != WL_CONNECTED)
    delay(500);

  while (! now )
  {
    now = time(nullptr);
    delay(500);
  }
}

void printTime() {
  struct tm* t;
  now = time(nullptr);
  t = localtime((const time_t*)&now);
  Serial.printf("\nTZ: GMT%+03d DS: %i - %02d:%02d", tz, ds, t->tm_hour, t->tm_min);
}

void loop() {
  configTime ( tz * 3600, ds * 3600, (char*)"pool.ntp.org") ;
  delay(2000);
  printTime();
  if (++tz > 1)
  {
    tz = -1;
    ds = !ds;
    Serial.println();
    delay(5000);
  }
}

Debug Messages

CORE version is 2_6_3

TZ: GMT-01 DS: 0 - 20:20
TZ: GMT+00 DS: 0 - 21:20
TZ: GMT+01 DS: 0 - 22:20

TZ: GMT-01 DS: 1 - 21:20
TZ: GMT+00 DS: 1 - 22:20
TZ: GMT+01 DS: 1 - 23:20

CORE version is 2_7_0

TZ: GMT-01 DS: 0 - 22:25
TZ: GMT+00 DS: 0 - 21:25
TZ: GMT+01 DS: 0 - 20:25

TZ: GMT-01 DS: 1 - 21:25
TZ: GMT+00 DS: 1 - 20:25
TZ: GMT+01 DS: 1 - 19:25

CORE version is 2_7_1
TZ: GMT-01 DS: 0 - 22:28
TZ: GMT+00 DS: 0 - 21:28
TZ: GMT+01 DS: 0 - 20:28

TZ: GMT-01 DS: 1 - 21:28
TZ: GMT+00 DS: 1 - 20:28
TZ: GMT+01 DS: 1 - 19:28

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions