DateTime.Parse не работает на сегодня (01 марта 2012)!o_0 - PullRequest
7 голосов
/ 01 марта 2012

Сегодня у меня действительно странная проблема.

Попробуйте выполнить этот код C #:

class Program
{
    static void Main(string[] args)
    {

        string yesterdayString = (DateTime.Now - TimeSpan.FromDays(1)).ToString("R");
        string nowString = DateTime.Now.ToString("R");

        DateTime.Parse(yesterdayString);
        DateTime.Parse(nowString);

        DateTime.Parse("Wed, 29 Feb 2012 18:05:49 GMT"); // this is what i have in yesterdayString
        DateTime.Parse("Thu, 01 Mar 2012 18:05:40 GMT"); // this is what i have in nowString
    }
}

Конечно, вы получите проблему только на сегодня. Я добавил последние две команды, чтобы вы знали, в чем проблема. Завтра и в течение марта месяца DateTime.Parse сгенерирует исключение FormatException (строка не была признана допустимым DateTime.)

Почему?

Ответы [ 2 ]

2 голосов
/ 28 февраля 2014

Подтверждено, что это ошибка.

Если вам нужна дополнительная информация по этой теме, пожалуйста, посмотрите http://connect.microsoft.com/VisualStudio/feedback/details/822536/datetime-parse-result-in-exception-when-the-format-is-rfc1123-pattern-and-locale-is-a-latin-one

2 голосов
/ 01 марта 2012

Я бы сказал, что вы нашли ошибку.Это должно работать:

// 
var spanish = CultureInfo.GetCultureInfo("es");
var date = DateTime.Parse(DateTime.Now.ToString("R", spanish), spanish);

или для итальянского это все еще бросает ...

var italian = CultureInfo.GetCultureInfo("it");
var date = DateTime.Parse(DateTime.Now.ToString("R", italian), italian);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...