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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QDateTime to byte & from  (Прочитано 3739 раз)
max1983
Гость
« : Май 11, 2011, 01:13 »

Конкретно по случаю.
Нужно передать дату с Клиента .NET на клиент Qt (по сети)
На данный момент строковое представление пакую в байты и отправляю.
Но этот вариант стал не удобен из за нецелесообразного расхода трафика.
Надо в байты меньшего размера впихнуть.
Итак есть код .NET
Код:
Int64 secs = DateTime::Now::get().Ticks::get();
MSDN
Gets the number of ticks that represent the date and time of this instance.
и приписочка
Цитировать
The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.

вот.. в QT есть
void QDateTime::setTime_t ( uint seconds )
и описание
Цитировать
Sets the date and time given the number of seconds that have passed since 1970-01-01T00:00:00, Coordinated Universal Time (Qt::UTC). On systems that do not support time zones this function will behave as if local time were Qt::UTC.

Установил часовой пояс UTC

Для получения секунд от 1970 написал следующее
Код:
DateTime d(1970,01,01,0,0,0,0);
Int64 secsMinus = d.Ticks::get();

Int64 secs = DateTime::Now::get().Ticks::get();
secs = secs - secsMinus;

secs отправил в клиент QT
ServerTime.setTime_t(secs);
и дата не правильная ..

подойдут любые идеи как разобраться с этим способом, или есть какой другой дату в байты
чтоб было как-то ..

Записан
mutineer
Гость
« Ответ #1 : Май 11, 2011, 07:44 »

может проблема в том, что .NET дает тебе количество 100-наносекундных интервалов, а ты их в Qt передаешь как количество секунд?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #2 : Май 11, 2011, 08:44 »

Добавь:
Код
C++ (Qt)
secs /= 10000000L;
Записан

Qt 5.11/4.8.7 (X11/Win)
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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