Russian Qt Forum
Мая 15, 2025, 10:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как получить мой локальный часовой пояс?  (Прочитано 5112 раз)
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.053 секунд. Запросов: 23.