2015-07-29 3 views
-1

Мне нужно разобрать строку формата "2015-07-16T00:00:00-05:00". Использование в documentation я написал следующий код:DateTime.ParseExact() Отладка

DateTime d; 
System.Globalization.CultureInfo enUS = new System.Globalization.CultureInfo("en-US"); 
var result = DateTime.TryParseExact(value, "yyyy-mm-ddTHH:mm:sszzz", enUS, System.Globalization.DateTimeStyles.None,out d); 

, но не в состоянии разобрать строку даты. Что случилось с моей строкой формата?

EDIT:

Я использовал мм в течение нескольких месяцев и минут. ММ - месяцы. Возвращаясь к этому вопросу, я понимаю, что если я испытал ту же строку формата как выход, я увидел бы проблему:

static void Main(string[] args) 
{ 
    DateTime time = new DateTime(2016, 1, 2, 3, 4, 5); 
    Console.WriteLine(time.ToString("yyyy-mm-ddTHH:mm:sszzz")); 
    //prints 2016-04-02T03:04:05-06:00 not 2016-01-02T03:04:05-06:00 
} 

Я думаю, что это, вероятно, полезно иметь в день будет отличаться от месяца, и т. д. Я надеюсь, что эта стратегия отладки поможет кому-то в аналогичной позиции.

+3

мм и мм, ММ - это месяцы, вы используете его в течение как месяцев, так и минут. –

ответ

3

mm означает минут, но вы используете его дважды - для обоих месяцев и минут. Используйте вместо этого MM:

yyyy-MM-ddTHH:mm:sszzz 
+1

Я думал, что zzz был за смещение? (-05: 00), спасибо за указание MM/mm. –

+0

@MichaelBillingham. Вы правы. Я пропустил ваше входное значение. Извини за это. – MarcinJuraszek

+0

Работало! Правильный формат был 'yyyy-MM-ddTHH: mm: sszzz' Я буду принимать этот ответ через ~ 6 минут. –

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