Почему .NET не может проанализировать строку даты с часовым поясом?

#.net #datetime #parsing

Вопрос:

.NET выдает исключение при попытке проанализировать строку даты и времени в этом формате:

Пт, 10 окт 2008 00:05:51 CST

Преобразовать.Сегодняшнее время(«Пт, 10 октября 2008 00:05:51 CST») приводит к исключению:

Строка не была распознана как допустимая дата-время. Есть неизвестное слово, начинающееся с индекса 26

Символ 26, очевидно, является началом буквы «CST».

В быстром тесте PHP и javascript могут без проблем разобрать эту строку в дату. Является ли .NET просто полным сбоем или есть разумное объяснение?

Комментарии:

1. Javascript выполняется на клиенте, поэтому он может использовать языковые настройки этого компьютера… PHP просто грубый и, вероятно, предполагает. .NET заставляет вас писать код, не зависящий от культуры, поэтому это немного сложнее.

Ответ №1:

http://msdn.microsoft.com/en-us/library/ey1cdcx8.aspx

Вам нужно использовать перегруженное время даты.Анализ для точного анализа часовых поясов.

Ответ №2:

Если определенный формат даты и времени будет проанализирован в разных регионах, используйте одну из перегрузок метода ParseExact и укажите спецификатор формата.