DateTime不从字符串解析

时间:2014-03-17 13:06:49

标签: c# datetime

我正在尝试使用DateTime

将字符串解析为DateTime.TryParseExact()

问题是它返回false。

class Program
{
    static void Main(string[] args)
    {
        var date = "30/01/2014 10:02:43:096";

        DateTime dt;

        if (DateTime.TryParseExact(date, "MM/dd/yyyy HH:mm:ss:fff", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
            Console.WriteLine("Yipee");
        else
            Console.WriteLine("D'oh!");

        Console.ReadKey();
    }
}

如果我更新程序的日期以使用不同的字符串日期var date = "03/01/2014 10:02:43:096";,那么它可以正常工作

我无法理解为什么它不喜欢30个月......

3 个答案:

答案 0 :(得分:4)

日期字符串中的

问题: 30/01/2014 10:02:43:096日期30首先出现,但您正在将其解析为Month起诉MM/dd/yyyy HH:mm:ss:fff

解决方案:您需要使用dd/MM/yyyy代替MM/dd/yyyy,因为您的日期字符串是30/01/2014 10:02:43:096,其中日期是第一位的。

试试这个:

if (DateTime.TryParseExact(date, "dd/MM/yyyy HH:mm:ss:fff", 
                CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))

答案 1 :(得分:2)

date" 30/01/2014 10:02:43:096" 格式" MM / dd / yyyy HH:mm:ss:fff"

您正试图获得30个月的月份:|

答案 2 :(得分:0)

if (DateTime.TryParseExact(date, "dd/MM/yyyy HH:mm:ss:fff", 
CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))