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

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


Tags:


Thanks:


Alexander

Avatar
Date: 9/19/2011
Reply


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.

Thanks:

Supervisor

Avatar
Date: 9/19/2011
Reply


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

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

Thanks:

Alexander

Avatar
Date: 9/19/2011
Reply


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

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

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

Thanks:

Alexander

Avatar
Date: 9/19/2011
Reply


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

Thanks:

Supervisor

Avatar
Date: 9/19/2011
Reply


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) Москва

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

Thanks:

Alexander

Avatar
Date: 9/19/2011
Reply


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

Thanks: Supervisor

Supervisor

Avatar
Date: 9/19/2011
Reply


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

Сейчас синхронизирую на основе этого:

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

Thanks:

Alexander

Avatar
Date: 9/19/2011
Reply


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

Сейчас синхронизирую на основе этого:

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

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

Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy