Название: Определить время по гринвичу Отправлено: Alex_C от Июль 15, 2012, 15:31 Есть необходимость показа в программе времени по Гринвичу. В винде есть для этого специальная ф-ция , которая без проблем работает. В Qt::QDateTime.toUTC - показывает неправильное время. В инете написано - что да, это глюк. Может он уже решен как то? Опять же - под Линуксом не охото разбираться, как часовой пояс получить :)
Название: Re: Определить время по гринвичу Отправлено: IMPOMEZIA от Июль 16, 2012, 11:39 В чём выражается неправильность? Где в инете написано что глюк?
Название: Re: Определить время по гринвичу Отправлено: V1KT0P от Июль 16, 2012, 11:49 Есть необходимость показа в программе времени по Гринвичу. В винде есть для этого специальная ф-ция , которая без проблем работает. В Qt::QDateTime.toUTC - показывает неправильное время. В инете написано - что да, это глюк. Может он уже решен как то? Опять же - под Линуксом не охото разбираться, как часовой пояс получить :) В смысле получить текущее время? Тогда QDateTime::currentDateTimeUtc().Если ты про перевод из локального времени, то сперва надо правильно установить время, тогда перевод не должен быть неверным. Название: Re: Определить время по гринвичу Отправлено: Alex_C от Июль 16, 2012, 14:40 У меня московское время. От гринвича оно отличается на -4 часа. А если использовать currentDateTimeUtc - то время выдается -3 часа.
Время на компе настроено верно, и все другие программы показывают тоже верно -4 часа. Название: Re: Определить время по гринвичу Отправлено: V1KT0P от Июль 16, 2012, 15:22 У меня московское время. От гринвича оно отличается на -4 часа. А если использовать currentDateTimeUtc - то время выдается -3 часа. У меня например работает нормально. Время по гринвичу получает стандартными средствами С++(Наверно стоит в этом направлении копать):Время на компе настроено верно, и все другие программы показывают тоже верно -4 часа. Код
Название: Re: Определить время по гринвичу Отправлено: Alex_C от Июль 16, 2012, 15:42 Время по гринвичу - это платформо-зависимый код, и c++ тут не причем.
На винде время по гринвичу определяется с помощью WinAPI: TIME_ZONE_ID_DAYLIGHT = GetTimeZoneInformation(UTC_ZONE) Название: Re: Определить время по гринвичу Отправлено: V1KT0P от Июль 16, 2012, 16:15 Время по гринвичу - это платформо-зависимый код, и c++ тут не причем. Дык в состав стандартных библиотек С++ входит С библиотека "C Time Library", в которой есть функции получения времени по гринвичу. Кстати под виндой используется GetSystemTime =). Кстати тот кусок что я выше привел он для UNIX систем, он вроде как раз и используется под Линуксом.На винде время по гринвичу определяется с помощью WinAPI: TIME_ZONE_ID_DAYLIGHT = GetTimeZoneInformation(UTC_ZONE) Название: Re: Определить время по гринвичу Отправлено: LisandreL от Июль 16, 2012, 16:23 У меня московское время. От гринвича оно отличается на -4 часа. А если использовать currentDateTimeUtc - то время выдается -3 часа. Время на компе настроено верно, и все другие программы показывают тоже верно -4 часа. Код Qt 4.8.1 Win7 Название: Re: Определить время по гринвичу Отправлено: V1KT0P от Июль 16, 2012, 16:29 Qt 4.8.1 Win7 В том то и дело что ему по видимому нужно под Линукс. На это намекает последнее предложение первого поста, но я могу ошибаться =).Название: Re: Определить время по гринвичу Отправлено: kambala от Июль 16, 2012, 17:10 Mac OS X 10.7.4, Киев (UTC +3)
Код: QDateTime("пн июля 16 14:09:27 2012") QDateTime("пн июля 16 17:09:27 2012") Название: Re: Определить время по гринвичу Отправлено: Alex_C от Июль 16, 2012, 17:12 Код
Часовой пояс - Москва. Галочка перехода на летнее время не стоит. Не понятно... Название: Re: Определить время по гринвичу Отправлено: mutineer от Июль 16, 2012, 17:20 Так у вас же теперь все время летнее время, может система не в курсе про это?
Название: Re: Определить время по гринвичу Отправлено: Bepec от Июль 16, 2012, 17:22 Если на винде не стоит патч от микрософта, исправляющий переход на летнее/зимнее время, то наверно оно и путает :)
Название: Re: Определить время по гринвичу Отправлено: Alex_C от Июль 16, 2012, 22:31 Если на винде не стоит патч от микрософта, исправляющий переход на летнее/зимнее время, то наверно оно и путает :) Но моя то программа верно время определяет (та, что на Дельфи.)... На счет патча не помню - ставил или нет. Ок, завтра попробую еще раз патч поставить - может он исправит положение дел. Название: Re: Определить время по гринвичу Отправлено: Alex_C от Июль 16, 2012, 22:38 Дома на ноуте пробовал - тут семерка стоит - все верно отображает. Значит дело в патче.
|