C# 将字符串格式化为日期

C# 将字符串格式化为日期,c#,C#,我有一个字符串20100524(2010 05 24),我想将其解析为实际的日期格式。DateTime.parse和DateTime.ParseExact是您的朋友。这将以安全的方式为您完成: DateTime result; CultureInfo provider = CultureInfo.InvariantCulture; string dateString = "20100524"; string format = "yyyyMMdd"; result = DateTime.Pars

我有一个字符串20100524(2010 05 24),我想将其解析为实际的日期格式。

DateTime.parse和DateTime.ParseExact是您的朋友。

这将以安全的方式为您完成:

DateTime result;
CultureInfo provider = CultureInfo.InvariantCulture;

string dateString = "20100524";
string format = "yyyyMMdd";
result = DateTime.ParseExact(dateString, format, provider);
DateTime dateTime;
if (DateTime.TryParseExact("20100524", "yyyyMMdd", null, DateTimeStyles.None, out dateTime))
{
    // use dateTime here
}
else
{
    // the string could not be parsed as a DateTime
}

当然是DateTime.Parse(字符串stringToParse);会有用的。看起来很有希望,但它错了,说它不承认它是一个有效的DateTime实际上对于像您这样的自定义日期格式,有必要使用ParseExact。刚刚测试了代码,一旦我为dateString和format定义了类型(我已经编辑了答案以包括在内),它完全按照要求工作——这几乎是人们所期望的,因为它是正确的。如果仍然出现错误,则可能是a)格式字符串不正确(区分大小写)或b)没有给出有效日期。这行代码有效,但这里有比我更好的解决方案,无需否决投票
DateTime.ParseExact("20100524", "yyyyMMdd", Thread.CurrentThread.CurrentCulture);