У меня возникла интересная проблема с функцией mktime. Я использую русский часовой пояс (UTC + 03: 00) Волгоград, Москва, Санкт-Петербург (RTZ 2)/Волгоград, Москва, Санкт-Петербург/и попытаемся построить time_t для «7.01.2009 00:00:00»mktime сдвигает время на один час
tm localTM;
localTM.tm_sec = 0;
localTM.tm_min = 0;
localTM.tm_hour = 0;
localTM.tm_mday = 7;
localTM.tm_mon = 0;
localTM.tm_year = 109;
time_t t = mktime(&localTM);
После mktime даты исполнения & время сменится на "6.01.2009 23:00:00".
У меня нет проблем, тогда я создаю время для «06.01.2009 00:00:00» или «08.01.2009 00:00:00». Если я переключу часовой пояс на другой, у меня не возникнет проблем с «7.01.2009 00:00:00».
Что может быть причиной этой странности и как я могу решить эту проблему?
Слишком много изменений правил в России, они просто перешли от UTC + 4 до UTC + 3 на 26 октября. Насколько хорошо ваша операционная система может отслеживать правила, неясно, когда вы не укажете, какую версию вы используете, и обновляете ли вы ее. –
Я использую Windows 7 Professional, все последние обновления установлены –