Некорректное определение оффсета для времени
Atom Ответить
19.09.2011


S# 3.2.11
Пробую получить точное время:
Код
Message("TIME:" + Trader.MarketTime.ToString() + " OFFSET:" + Trader.MarketTimeOffset.ToString());

Trader.SyncMarketTime(Exchange.Rts);
			
Message("TIME:" + Trader.MarketTime.ToString() + " OFFSET:" + Trader.MarketTimeOffset.ToString());


Выводит следующее:
Код
13:22:46 TIME:19.09.2011 13:22:46 OFFSET:00:00:00
13:22:46 TIME:19.09.2011 17:22:46 OFFSET:04:00:00


Часовой пояс у меня - UTC+5 (Екатеринбург), то есть время на 2 часа больше чем в Москве, а не на 4 часа меньше, как получилось выше.
Плюс непонятно почему не получилось подключиться к ntp серверу (кстати к какому подключается?) - прокси нет, торги в разгаре.

Теги:


Спасибо:




8 Ответов
Alexander

Фотография
Дата: 19.09.2011
Ответить


Supervisor Перейти
S# 3.2.11
Пробую получить точное время:
Код
Message("TIME:" + Trader.MarketTime.ToString() + " OFFSET:" + Trader.MarketTimeOffset.ToString());

Trader.SyncMarketTime(Exchange.Rts);
			
Message("TIME:" + Trader.MarketTime.ToString() + " OFFSET:" + Trader.MarketTimeOffset.ToString());


Выводит следующее:
Код
13:22:46 TIME:19.09.2011 13:22:46 OFFSET:00:00:00
13:22:46 TIME:19.09.2011 17:22:46 OFFSET:04:00:00


Часовой пояс у меня - UTC+5 (Екатеринбург), то есть время на 2 часа больше чем в Москве, а не на 4 часа меньше, как получилось выше.
Плюс непонятно почему не получилось подключиться к ntp серверу (кстати к какому подключается?) - прокси нет, торги в разгаре.



time-a.nist.gov:123
Используется метод TimeZoneInfo.GetUtcOffset(DateTime.Now) - попробуйте у себя посмотреть что выводится.
Также напишите чему у вас равно BaseUtcOffset.
Спасибо:

Supervisor

Фотография
Дата: 19.09.2011
Ответить


TimeZoneInfo.Local.BaseUtcOffset.ToString():
05:00:00

TimeZoneInfo.Local.GetUtcOffset(DateTime.Now).ToString():
05:00:00
Автор топика
Спасибо:

Alexander

Фотография
Дата: 19.09.2011
Ответить


Supervisor Перейти
TimeZoneInfo.Local.BaseUtcOffset.ToString():
05:00:00

TimeZoneInfo.Local.GetUtcOffset(DateTime.Now).ToString():
05:00:00


А если TimeZoneInfo достать из Exchange.Rts.TimeZone?
Спасибо:

Alexander

Фотография
Дата: 19.09.2011
Ответить


Кстати, в Москве UTC+4, в Екатеринбурге UTC+6
Спасибо:

Supervisor

Фотография
Дата: 19.09.2011
Ответить


Alexander Перейти
Кстати, в Москве UTC+4, в Екатеринбурге UTC+6

Да, установил обновление КВ2570791, теперь винда показывает корректные пояса (раньше показывала +3 и +5 соответственно), но на проблеме это никак не отразилось.

Exchange.Rts.TimeZoneInfo.BaseUtcOffset.ToString():
04:00:00

Exchange.Rts.TimeZoneInfo.GetUtcOffset(DateTime.Now).ToString():
04:00:00

Exchange.Rts.TimeZoneInfo.DisplayName:
(UTC+4:00) Москва

Такое ощущение что он просто прибавляет часовой пояс Москвы к текущему времени на компьютере, вместо прибавления разницы поясов.
Автор топика
Спасибо:

Alexander

Фотография
Дата: 19.09.2011
Ответить


Баг, будем лечить.
Вечером посмотрю, фикс, скорее всего, в 3.2.12 будет.
Спасибо :)
Спасибо: Supervisor

Supervisor

Фотография
Дата: 19.09.2011
Ответить


Хорошо, с этим вроде разобрались, но осталась другая проблема - почему ему не удается синхронизировать время с ntp сервером?

Сейчас синхронизирую на основе этого:
Alexander Перейти
Вот, нашёл проект, он позволяет избежать проблемы с задержкой на отправку \ получение - всё учитывает.
CodeProject

с тем же сервером, все работает.
Автор топика
Спасибо:

Alexander

Фотография
Дата: 19.09.2011
Ответить


Supervisor Перейти
Хорошо, с этим вроде разобрались, но осталась другая проблема - почему ему не удается синхронизировать время с ntp сервером?

Сейчас синхронизирую на основе этого:
Alexander Перейти
Вот, нашёл проект, он позволяет избежать проблемы с задержкой на отправку \ получение - всё учитывает.
CodeProject

с тем же сервером, все работает.


Да, это тоже уже добавил в таски. Только вечером смогу посмотреть.
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy