C#解析日期和时间

BEN*_*der 4 c#

我在应用程序中有一些代码

DateTime activityDate = DateTime.Parse(tempDate + " " + tempTime);
Run Code Online (Sandbox Code Playgroud)

其中tempDate是一个字符串,其值为"2009-12-01"(即yyyy-mm-dd),tempTime是一个字符串,其值为"23:12:10"(即hh:mm:ss)

首先,有没有更好的方法来组合这些以获得DateTime,其次是上面的代码可以安全地在任何区域工作(如果没有办法处理这个)

嗯更密切地查看日期,连接的日期和时间实际上是这种格式"2009-11-26T19:37:56 + 00:00" - 日期/时间的时区部分的格式字符串是什么?

Mar*_*ell 10

如果格式有保证,ParseExact可能更安全(分离模式):

DateTime activityDate = DateTime.ParseExact(tempDate + " " + tempTime,
    "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)


Eli*_*sha 6

您可以使用ParseExact指定日期和时间格式.

例如:

DateTime dateTime = 
        DateTime.ParseExact("2009-12-01 23:12:10", "yyyy-MM-dd HH:mm:ss", null);
Run Code Online (Sandbox Code Playgroud)

产量:

Assert.That(dateTime, Is.EqualTo(new DateTime(2009, 12, 1, 23, 12, 10)));
Run Code Online (Sandbox Code Playgroud)

您还可以指定使用此格式的区域性,并使用它解析日期和时间,同时保持解析不受处理OS文化的影响.
从快速浏览看,似乎没有具有这种确切预定义格式的文化,但通常在框架文化中存在许多标准格式.