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


Некорректное определение оффсета для времени
Atom
9/19/2011


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

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


Выводит следующее:
Code
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 Go to
S# 3.2.11
Пробую получить точное время:
Code
Message("TIME:" + Trader.MarketTime.ToString() + " OFFSET:" + Trader.MarketTimeOffset.ToString());

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


Выводит следующее:
Code
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 Go to
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 Go to
Кстати, в Москве 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 Go to
Вот, нашёл проект, он позволяет избежать проблемы с задержкой на отправку \ получение - всё учитывает.
CodeProject

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

Alexander

Avatar
Date: 9/19/2011
Reply


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

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

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


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


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

loading
clippy