Почему этот анализ DateTime всегда терпит неудачу? - PullRequest
5 голосов
/ 20 октября 2011

Кто-нибудь может увидеть, что я здесь делаю не так? Assert.IsTrue(parses) всегда терпит неудачу.

    [TestMethod]
    public void Can_Parse_To_DateTime()
    {
        DateTime expected = new DateTime(2011, 10, 19, 16, 01, 59);
        DateTime actual;

        string value = "Wed Oct 19 16:01:59 PDT 2011";
        string  mask = "ddd MMM dd HH:mm:ss xxx YYYY";

        bool parses = DateTime.TryParseExact(value, mask, 
                                             CultureInfo.InvariantCulture, 
                                             DateTimeStyles.None, 
                                             out actual);

        Assert.IsTrue(parses);
        Assert.AreEqual(expected, actual);
    }

Я тоже так пробовал, с тем же результатом:

    [TestMethod]
    public void parsing()
    {
        DateTime expected = new DateTime(2011, 10, 19, 16, 01, 59);
        DateTime actual;

        string value = "Wed Oct 19 16:01:59 PDT 2011";
        string  mask = "ddd MMM dd HH:mm:ss YYYY"; // note removal of "xxx "

        value = value.Remove(20, 4);  // removal of the "PDT "
        bool parses = DateTime.TryParseExact(value, mask, 
                                             CultureInfo.InvariantCulture, 
                                             DateTimeStyles.None, 
                                             out actual);

        Assert.IsTrue(parses);
        Assert.AreEqual(expected, actual);
    }

Ответы [ 2 ]

3 голосов
/ 20 октября 2011

Как заметил Мэтт Гамильтон, yyyy должно быть в нижнем регистре.И xxx полностью недействителен.Вы всегда можете проверить строку формата, используя обратный метод DateTime.ToString(format,CultureInfo.InvariantCulture).

1 голос
/ 20 октября 2011
 string mask = "ddd MMM dd HH:mm:ss PDT yyyy";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...