Potrzebuję pobrać z InfluxDB dane, z tym że czas zapisywany jest w bazie jako ilość sekund od 1-01-1970 godzina 0000 czasu UTC.
Program do konwersji na "ludzką formę" wygląda tak:
#include <stdio.h>
#include <time.h>
#include <locale.h>
int main (void) {
time_t tm = 1556746799;
printf ("%s", ctime (&tm));
return 0;
}
Nic prostszego chyba być nie może. Ale w wyniku działania tego programu o ile występuje czas letni, to data (nie godzina!!) jest o jeden dzień większa. Wynik działania programu daje:
Wed May 1 2359 2019
A powinien być 31 kwietnia. Godzina się zgadza, przeliczył według czasu letniego. Ale jeżeli data jest z czasu zimowego, to jest konwertowana prawidłowo. Program kompiluję na Linux Mageia , fork od RHL. Poprawność konwersji sprawdzałem za pomocą dostępnych w internecie konwerterów on-line.
Spotkał się któryś z Szanownych Kolegów z czymś takim? Jaki błąd robię?