2012-01-23 7 views
1

нужно преобразовать эту строку: Пн Окт 31 16:18:15 CDT 2011Как преобразовать строку действительного DateTime

В действительное значение DateTime.
Пробовал все варианты date time styles с DateTime.Parseto безрезультатно.

Любые идеи?

+0

Вы заинтересованы в преобразовании между часовыми поясами или вы считаете, что часовой пояс в строке является локальным? – JohnFx

+0

На самом деле просто хотите извлечь действительную дату/время и игнорировать День и часовой пояс, поскольку это будет использоваться как метка времени. – user569963

+0

Является ли часовой пояс всегда CDT? Или это изменится? Я понимаю, что вы хотите, чтобы это игнорировалось? – Oded

ответ

3

Проблема с CDT у вас там есть. Это не действительная часть строки, представляющая DateTime.

Возможно, вам удастся заменить это действительным представлением часового пояса -0500 и спецификатором формата K.


Вы можете использовать следующую строку формата для разбора строки:

ddd MMM dd HH:mm:ss CDT yyyy 

Например:

DateTime.ParseExact("Mon Oct 31 16:18:15 CDT 2011", 
        "ddd MMM dd HH:mm:ss CDT yyyy", 
        CultureInfo.InvariantCulture); 

Я предлагаю прочитать документацию для Custom Date and Time Format Strings на MSDN.

+0

Да, вам придется заменить этот CDT на смещение, как сказал Одед. – Jeremy

+0

Спасибо, я прочитаю. Что ParseExact обрабатывал CDT просто отлично. – user569963

+0

@ user569963 - Обратите внимание, что 'ParseExact' выдаст исключение, если оно не будет успешным. Существует «TryParseExact», который не будет генерировать исключение, но возвращает логическое значение, указывающее на успех или неудачу. – Oded

Смежные вопросы