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

Некорректное определение оффсета для времени
Atom
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 серверу (кстати к какому подключается?) - прокси нет, торги в разгаре.


Теги:


Спасибо:


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