Название: Помогите исправить часовой пояс для QDateTime::toTimeSpec для статической сборки Отправлено: neosapient от Июнь 10, 2010, 12:13 Здравствуйте.
Сегодня ночью собрал статическую QT4 без зависимостей от VC (-Mt в соответствии с инструкциями с вики этого сайта). Попробовал преобразовать время в виде текста к формату time_t. Пришел к выводу, что собранная мной статическая версия не знает свой часовой пояс. Например, если запустить код Код: ... То резульататом будет 1163411660 (не правильно), вместо 1163422460 (правильно). Разница 10800 секунд - это три часа. Я нахожусь в часовом поясе Москвы (GTM +3) Если (для статической QT4) в метод toTimeSpec() передать Qt::LocalTime, Qt::UTC или Qt::OffsetFromUTC то получаешь один и тот же неправильный результат (1163411660) Как обойти проблему с часовым поясом. Название: Re: Помогите исправить часовой пояс для QDateTime::toTimeSpec для статической сборки Отправлено: Kolobok от Июнь 10, 2010, 12:37 Прочитать внимательно документацию по методу toTimeSpec.
Название: Re: Помогите исправить часовой пояс для QDateTime::toTimeSpec д Отправлено: neosapient от Июнь 10, 2010, 13:18 Цитировать Цитировать QDateTime QDateTime::toTimeSpec ( Qt::TimeSpec specification ) const Returns a copy of this datetime configured to use the given time specification.See also timeSpec(), toUTC(), and toLocalTime(). Перевод: Возвращает копию переменной datetime в выбраной конфигурации часового пояса. Читаю "документацию по методу toTimeSpec" и не вижу того, на что Вы хотели обратить мое внимание - укажите точнее вашу мысль. Название: Re: Помогите исправить часовой пояс для QDateTime::toTimeSpec для статической сборки Отправлено: Kolobok от Июнь 10, 2010, 15:50 Мне кажется, в строчке с вызовом toTimeSpec не было присваивания. А что бы было как ты хочешь, добавь
Код: dt.setTimeSpec(Qt::UTC); Название: Re: Помогите исправить часовой пояс для QDateTime::toTimeSpec д Отправлено: neosapient от Июнь 10, 2010, 18:43 Да я и так
Код: ... и так пробовал Код: ... Результат идентичный... В статической сборке QT4 часовой пояс не учитывается - такое ощущение, что ОС не передает в QT4 свой часовой пояс Что делать ? (с) Чернышевский Название: Re: Помогите исправить часовой пояс для QDateTime::toTimeSpec для статической сборки Отправлено: Kolobok от Июнь 10, 2010, 18:58 Пробовал, что я выше написал?
Название: Re: Помогите исправить часовой пояс для QDateTime::toTimeSpec для статической сборки Отправлено: neosapient от Июнь 10, 2010, 19:00 Пробовал, что я выше написал? Да, не помогает :(Название: Re: Помогите исправить часовой пояс для QDateTime::toTimeSpec для статической сборки Отправлено: Kolobok от Июнь 10, 2010, 19:13 Покажи, как пробовал. В твоих примерах я этого не вижу.
Название: Re: Помогите исправить часовой пояс для QDateTime::toTimeSpec для статической сборки Отправлено: neosapient от Июнь 11, 2010, 12:16 Вроде заработало
Цитировать #include <QtGui> int main(int argc, char *argv[]) { QApplication app(argc, argv); QDateTime dt; time_t result; dt = QDateTime::fromString( "2006-11-13 12:54:20", "yyyy-MM-dd HH:mm:ss" ); dt.setTimeSpec(Qt::UTC); result = dt.toTime_t(); return 0; } |