2015-07-17 1 views
0

У меня проблема с DateTime TryParseExact.C# DateTime TryParseExact Problems. Тот же шаблон разного года не работает

Мне нужно разобрать строку даты в следующем формате: "10 пт, Минь 2013"

Моя картина: "d ДДД, MMM YYYY"

Посмотрите на код сильфона

private static readonly string[] EnglishFormats = 
    { 
     "yyyy-MM-ddTHH:mm:sszzz", "dd MMMM yyyy HH:mm" , "dddd, MMMM d, yyyy","dddd, d MMMM yyyy","dddd, MMMM d, yy","dddd, d MMMM yy","d ddd, MMM yyyy" 
    }; 

    public static bool TryParseEnglishDate(string s, out DateTime result) 
    { 
     return DateTime.TryParseExact(s, EnglishFormats, CultureInfo.InvariantCulture, DateTimeStyles.None, out result); 
    } 

при п = "10 пт, январь 2014", который работает ==> результат = 1/10/2014 12:00:00 AM

при s = "10 пт, январь 2013" или другие годы это Безразлично 't work ==> result = "1/1/0001 12:00:00 AM"

У вас есть идея, почему он не работает с разным годом до 2014 года?

Благодаря

+0

Почему люди голосуют? Это классическая игра! –

ответ

3

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

Формат в порядке, строка, которую вы пытаетесь разобрать, нет.

+0

Спасибо за ваш быстрый ответ !!! Это был пример. :) Но это может быть хороший ответ! Если s = "6 Mon, Jan 2013", это не сработает. Result = "1/1/0001 12:00:00 AM" –

+0

Err ... это воскресенье. Серьезно ... получите календарь! –

+0

Я понимаю свою проблему благодаря вашему ответу –

2

10 января 2013 года - четверг. Таким образом, ввод не является допустимой датой.