#include <iostream>
int main(){
std::time_t t = 893665799;
std::tm * tm = std::localtime(&t);
printf("local time duration =>year:%d, month:%d, day:%d, hour:%d, min:%d, sec:%d\n",tm->tm_year, tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);
t = 893665800;
tm = std::localtime(&t);
printf("local time duration =>year:%d, month:%d, day:%d, hour:%d, min:%d, sec:%d\n",tm->tm_year, tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);
}
893665799 — это волшебный utc.
Когда вы меняете часовой пояс на острова Питкэрн.
Журнал показан ниже
Продолжительность по местному времени => год: 98, месяц: 3, день: 26, час: 23, мин: 59, сек: 59
Продолжительность по местному времени => год: 98, месяц: 3, день: 27, час: 0, мин: 30, сек: 0
в чем дело ? почему 1 сек приводит к 30 минутному разрыву??