Russian Qt Forum
Сентябрь 22, 2024, 18:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как получить мой локальный часовой пояс?  (Прочитано 4858 раз)
lolbla2
Гость
« : Март 15, 2013, 10:33 »

Т.е. мне нужно написать метод, который вернет в int мой часовой пояс. смотрел в сторогну QDateTime,  но там такого не нарыл...
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Март 15, 2013, 10:43 »

Т.е. мне нужно написать метод, который вернет в int мой часовой пояс. смотрел в сторогну QDateTime,  но там такого не нарыл...
Псевдокод:
Код
C++ (Qt)
QDateTime::toLocalTime() - QDateTime::toUTC()
Записан

Qt 5.11/4.8.7 (X11/Win)
lolbla2
Гость
« Ответ #2 : Март 15, 2013, 10:47 »

Т.е. мне нужно написать метод, который вернет в int мой часовой пояс. смотрел в сторогну QDateTime,  но там такого не нарыл...
Псевдокод:
Код
C++ (Qt)
QDateTime::toLocalTime() - QDateTime::toUTC()

для QDateTime  не определён оператор "-"
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Март 15, 2013, 10:48 »

Тебе же ясно сказали
Псевдокод:
Записан

Qt 5.11/4.8.7 (X11/Win)
lolbla2
Гость
« Ответ #4 : Март 15, 2013, 10:51 »

Тебе же ясно сказали
Псевдокод:

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

возвращает 0, wtf?(
Записан
lolbla2
Гость
« Ответ #5 : Март 15, 2013, 10:55 »

Оказывается у QDateTime  есть не документированный метод utcOffset(), который тоже почему-то возвращает 0....
Записан
lolbla2
Гость
« Ответ #6 : Март 15, 2013, 11:01 »

Решено:

Код
C++ (Qt)
int getTimeZone()
{
   QDateTime dLocal = QDateTime::currentDateTime();
   return dLocal.time().hour() - dLocal.toUTC().time().hour();
}
 
Записан
twp
Гость
« Ответ #7 : Март 16, 2013, 21:07 »

Для некоторых стран это не будет работать правильно, поскольку имеют разницу во времени не только в часах, но и минутах. Венесуэла, юг Азии, Австралия и океания и др.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.116 секунд. Запросов: 23.