为什么这个DateTime解析总是失败?
本文关键字:失败 DateTime 为什么 | 更新日期: 2023-09-27 18:11:40
有人能看出我在这里做错了什么吗?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);
}
正如Matt Hamilton所指出的,yyyy
必须是小写的。xxx
是完全无效的。您总是可以使用反向方法DateTime.ToString(format,CultureInfo.InvariantCulture)
来测试您的格式字符串。
string mask = "ddd MMM dd HH:mm:ss PDT yyyy";