Здравствуйте!
Пытаюсь импортировать исторические данные по трейдам из csv в Гидру. Формат csv: date;time;price;volume Пример строки: 14.08.2011;14:14:40;10.400000000000;0.779000000000
Перепробовал все варианты настроек импорта - не хочет. Стандартная ошибка:
19:00:45 System.InvalidCastException: Cannot convert 14:14:00 with format hh:mm:ss to TimeSpan. ---> System.FormatException: Входная строка имела неверный формат. в System.Globalization.TimeSpanParse.TimeSpanResult.SetFailure(ParseFailureKind failure, String failureMessageID, Object failureMessageFormatArgument, String failureArgumentName) в System.Globalization.TimeSpanParse.TryParseByFormat(String input, String format, TimeSpanStyles styles, TimeSpanResult& result) в System.Globalization.TimeSpanParse.ParseExact(String input, String format, IFormatProvider formatProvider, TimeSpanStyles styles) в Ecng.Common.TimeHelper.ToTimeSpan(String value, String format) --- Конец трассировки внутреннего стека исключений --- в Ecng.Common.TimeHelper.ToTimeSpan(String value, String format) в StockSharp.Hydra.Panes.ImportPane.FieldMapping.ApplyValue(Object instance, Object value) в StockSharp.Hydra.Panes.ImportPane.<>c__DisplayClass18d.<OnDoWork>b__18c() в Ecng.Common.Converter.<>c__DisplayClassf.<DoInCulture>b__e() в Ecng.Common.Converter.DoInCulture(CultureInfo cultureInfo, Func`1 func) в StockSharp.Hydra.Panes.ImportPane.OnDoWork(Object sender, DoWorkEventArgs e) в System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
Прилагаю скрин настроек импорта.
Помогите победить проблему, пожалуйста!
Kommentare (6)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Вот так попробуй - dd.MM.yyyy HH:mm:ss https://msdn.microsoft.com/ru-ru/library/8kb3ddd4(v=vs.110).aspx
Спасибо, но я это пробовал тоже... не помогает.
string datestring = "03.06.2015 +03"; string timestring = "12:05:36";
string dateformat = "dd.MM.yyyy zz";
Но Гидра не понимает такой записи..
DateTimeOffset date = DateTimeOffset.ParseExact(datestring, dateformat, null); TimeSpan time = TimeSpan.ParseExact(timestring, timeformat, null);
http://stackoverflow.com/questions/11719055/why-does-timespan-parseexact-not-work
когда указал формат времени 'с' то все заработало...
Спасибо! 'C'работало... :) Кстати, дату у меня приняло без указания сдвига в csv. Но Гидра таки сама добавила +03 в поле TimeSpan в импортированных сделках. И это при том, что часовой пояс в настройках у меня без сдвига был указан = UTC.
Отсюда несколько уточняющих вопросов, если можно:
Еще раз спасибо!
Значение имеет не то в какой Вы зоне, а в какой зоне находится биржа, где данные были записаны... Кстати зона относится к типу DateTime или сдвиг к DateTimeOffset, а не к TimeSpan..
Уяснил. Спасибо! :)