Russian Qt Forum

Qt => Общие вопросы => Тема начата: a_n_y_a от Октябрь 28, 2008, 13:02



Название: Как в Qt в классе QTime получить текущее московское время?
Отправлено: a_n_y_a от Октябрь 28, 2008, 13:02
  Надо получить в ситеме время с учетом часового пояса.
Делаю так:
QTime Ti; Ti=QTime::currentTime();
  Полученное время равно системному времени, сдвинутому на 3 часа.
Часики на панели показывают правильное время,
и првильно выбран часовой пояс в системе.
 Пытался работать с локалью, но там нет часового пояса,
только страна и язык. Что посоветуете?



Название: Re: Как в Qt в классе QTime получить текущее московское время?
Отправлено: ритт от Октябрь 28, 2008, 13:41
правильнее было бы работать с QDateTime
Цитировать
QDateTime::QDateTime ( const QDate & date, const QTime & time, Qt::TimeSpec spec = Qt::LocalTime )
Constructs a datetime with the given date and time, using the time specification defined by spec.
Цитировать
Qt::LocalTime
Locale dependent time (Timezones and Daylight Savings Time).


Название: Re: Как в Qt в классе QTime получить текущее московское время?
Отправлено: a_n_y_a от Октябрь 28, 2008, 15:17
Спасибо за ответ. Я попробовал ваш совет, но у меня что то не получается. Делаю так:
    QDate Dt;
    Dt=QDate::currentDate ();
    QTime Ti;
    Ti=QTime::currentTime();
    QDateTime DtTi(Dt, Ti, Qt::LocalTime );
    TimeIzd->setText(DtTi.toString());
  Если время и дату я зараннее не определяю, то клас QDateTime оказывается пустой.
Если определяю, то время все равно сдвинуто на 3 часа. Работаю в версии 4.4.1
Что я делаю не правильно?


Название: Re: Как в Qt в классе QTime получить текущее московское время?
Отправлено: pastor от Октябрь 28, 2008, 15:25
см. метод QDateTime::currentDateTime():

Код:
QDateTime dt = QDateTime::currentDateTime();
TimeIzd->setText(dt.toString());