DateTime.Parse error - PullRequest
       6

DateTime.Parse error

2 голосов
/ 14 декабря 2011

Наш веб-сервис использует метод Datetime.parse для преобразования данных из формата xml в DateTime. Он анализирует строки даты и времени отдельно и складывает их вместе, как это -

DateTime.Parse(Date_string).add(TimeSpan.Parse(Time_string)).

Код работал нормально, за исключением нескольких часов на прошлой неделе. Время показывало как 12 часов перед фактическим временем. Например, 01/01/2011 10:00:00 будет проанализировано как 01/01/2011 22:00:00. Большинство запросов за это время были обработаны со значениями datetime на 12 часов раньше фактического времени, хотя некоторые были обработаны правильно. Сейчас он работает нормально и не видел его после этого.

Кто-нибудь видел такую ​​проблему?

1 Ответ

1 голос
/ 29 мая 2012

Вы говорите: «Код работал нормально, за исключением нескольких часов на прошлой неделе», но вы точно не указали, когда это было, или в каком часовом поясе вы находитесь. Есть ли вероятность, что это произошло при переходе на летнее время?

Вы не должны использовать TimeSpan.Parse вообще.TimeSpan НЕ представляет время суток, несмотря на то, что оно выглядит как чч: мм: сс.TimeSpan представляет фиксированную длительность времени.

Если вам действительно даны отдельные строки даты и времени, соедините их вместе перед разбором, например:

DateTime dt = DateTime.Parse(date_string + " " + time_string);

Вы также должны знатьпоследствия для строки, которую вы отправляете, в часовом поясе. Дополнительные сведения см. в статье MSDN по адресу DateTime.Parse .

...