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)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Message("TIME:" + Trader.MarketTime.ToString() + " OFFSET:" + Trader.MarketTimeOffset.ToString());
Trader.SyncMarketTime(Exchange.Rts);
Message("TIME:" + Trader.MarketTime.ToString() + " OFFSET:" + Trader.MarketTimeOffset.ToString());
time-a.nist.gov:123 Используется метод TimeZoneInfo.GetUtcOffset(DateTime.Now) - попробуйте у себя посмотреть что выводится. Также напишите чему у вас равно BaseUtcOffset.
TimeZoneInfo.Local.BaseUtcOffset.ToString(): 05:00:00
TimeZoneInfo.Local.GetUtcOffset(DateTime.Now).ToString(): 05:00:00
А если TimeZoneInfo достать из Exchange.Rts.TimeZone?
Кстати, в Москве UTC+4, в Екатеринбурге UTC+6
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) Москва
Такое ощущение что он просто прибавляет часовой пояс Москвы к текущему времени на компьютере, вместо прибавления разницы поясов.
Баг, будем лечить. Вечером посмотрю, фикс, скорее всего, в 3.2.12 будет. Спасибо :)
Хорошо, с этим вроде разобрались, но осталась другая проблема - почему ему не удается синхронизировать время с ntp сервером?
Сейчас синхронизирую на основе этого:
Да, это тоже уже добавил в таски. Только вечером смогу посмотреть.