Russian Qt Forum

Qt => Общие вопросы => Тема начата: lolbla2 от Март 15, 2013, 10:33



Название: Как получить мой локальный часовой пояс?
Отправлено: lolbla2 от Март 15, 2013, 10:33
Т.е. мне нужно написать метод, который вернет в int мой часовой пояс. смотрел в сторогну QDateTime,  но там такого не нарыл...


Название: Re: Как получить мой локальный часовой пояс?
Отправлено: GreatSnake от Март 15, 2013, 10:43
Т.е. мне нужно написать метод, который вернет в int мой часовой пояс. смотрел в сторогну QDateTime,  но там такого не нарыл...
Псевдокод:
Код
C++ (Qt)
QDateTime::toLocalTime() - QDateTime::toUTC()


Название: Re: Как получить мой локальный часовой пояс?
Отправлено: lolbla2 от Март 15, 2013, 10:47
Т.е. мне нужно написать метод, который вернет в int мой часовой пояс. смотрел в сторогну QDateTime,  но там такого не нарыл...
Псевдокод:
Код
C++ (Qt)
QDateTime::toLocalTime() - QDateTime::toUTC()

для QDateTime  не определён оператор "-"


Название: Re: Как получить мой локальный часовой пояс?
Отправлено: GreatSnake от Март 15, 2013, 10:48
Тебе же ясно сказали
Псевдокод:


Название: Re: Как получить мой локальный часовой пояс?
Отправлено: lolbla2 от Март 15, 2013, 10:51
Тебе же ясно сказали
Псевдокод:

Код
C++ (Qt)
QDateTime::toLocalTime().currentMSecsSinceEpoch() - QDateTime::toUTC().currentMSecsSinceEpoch()
 

возвращает 0, wtf?(


Название: Re: Как получить мой локальный часовой пояс?
Отправлено: lolbla2 от Март 15, 2013, 10:55
Оказывается у QDateTime  есть не документированный метод utcOffset(), который тоже почему-то возвращает 0....


Название: Re: Как получить мой локальный часовой пояс?
Отправлено: lolbla2 от Март 15, 2013, 11:01
Решено:

Код
C++ (Qt)
int getTimeZone()
{
   QDateTime dLocal = QDateTime::currentDateTime();
   return dLocal.time().hour() - dLocal.toUTC().time().hour();
}
 


Название: Re: Как получить мой локальный часовой пояс?
Отправлено: twp от Март 16, 2013, 21:07
Для некоторых стран это не будет работать правильно, поскольку имеют разницу во времени не только в часах, но и минутах. Венесуэла, юг Азии, Австралия и океания и др. (http://upload.wikimedia.org/wikipedia/commons/a/ad/Standard_time_zones_of_the_world.png)