QDateTime в часовом поясе



  • Есть переменная QDateTime dt, в ней хранится время в UTC+0. Нужно получить значение из этой переменной в определённом часовом поясе (например в русском UTC+4). dt.setTimeSpec(Qt::OffsetFromUTC) - работает но так время зависит от настроек системы. То есть если в настройках системы часовая зона не UTC+4, а скажем UTC+2 то и значение будет в UTC+2. А мне нужно чтобы на любом компьютере, не важно где находящемся было именно русское время. Подчитал qt-документацию по этой теме и ни чего подходящего не нашел. Искал также в сторону QLocal но там из методов по работе с QDateTime только форматирование.

    вывод осуществляется через dt.toString.

    вручную можно dt.addSecs(3600*Offset), но всё же может в Qt есть внутренние средства, которые позволяют хотя бы учитывать перевод на зимнее/летнее время.

    Заранее спасибо!



  • А ты из интернета время получай.



  • дак так и делаю)) с сервака гугла, но он время хранит то как раз в UTC+0, а мне нужно в УТС+4
    В англ. ветке Andre ответил на мой вопрос: поддержка работы с часовыми поясами будет в Qt 5 (над этим работает John Layt)



  • На самом деле, в классе QDateTime есть недокументированное свойство utfOffset (и сеттер setUtcOffset соответственно). Можно попробовать воспользоваться им. Смотрите исходники Qt, внутри это свойство используется, как минимум при преобразовании QDateTime из/в строку в формате ISO8601.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.