Всем привет!
Не поскажите как убрать переход на летнее время? Сразу в поиск не отсылайте, там смотрел, не нашел подходящего кода для своего случая
Проблема следующая:
У меня есть time_t переменная, я ее перевожу в tm, после этого конвертирую в строку с помощью strrtime. В результате вместо 00 часов после перехода на летнее время всегда получается 01.
time_t mDate;
char Temp[20];
.............
tm* DM = localtime(&m_Date);
strttime(Temp, 20, %d.%.m.&Y %H:%M:%S, DM);
Мне нужно избавиться от +1 час, при этом нужно использовать ТОЛЬКО POSIX функции, т.к. код может компилиться как в винде так и в юниксе. Убирать галку в настройках винды на время работы программы тоже не выход, т.к. в это время др. программы могут использовать фунции времени и будут получать неверный результат при конвертации. Пробовал менять переменную _daylight в 0 — не помогает, видимо, приложениие консольное и переменная окружения для таймзоны не выставлена, соотведственно функции берут системные настройки(пробовал получать таймзону возвращается значение по умолчанию).
Я конечно могу сам собирать строку из tm или сделать копию DM, вычесть в ней час и сконвертировать строку, но очень не хочится писать пол тонны проверок и т.п., да и медленно это. Хотелось бы узнать нормальный способ избавиться от летнего время.
Если кто сталкивался с этой проблемой помогите плиз...