将格式字符串转换为日期

3

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

4个回答

16
这将以安全的方式为您完成:
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
}

6

DateTime.Parse和DateTime.ParseExact是您的好帮手。


3
DateTime result;
CultureInfo provider = CultureInfo.InvariantCulture;

string dateString = "20100524";
string format = "yyyyMMdd";
result = DateTime.ParseExact(dateString, format, provider);

当然,DateTime.Parse(string stringToParse);会起作用。http://msdn.microsoft.com/en-us/library/1k1skd40.aspx - Julius F
看起来很有前途,但它报错说它无法识别它为有效的日期时间。 - Jake Sankey
1
实际上,对于像您这样的自定义日期格式,使用ParseExact是必要的。 - CARLOS LOTH
刚刚测试了那段代码,一旦我为dateString和format定义了类型(我已经编辑答案包含这些内容),它就完全按照要求工作了——这基本上是人们所期望的。如果你仍然遇到错误,那么很可能是因为a)你没有正确设置格式字符串(它区分大小写)或b)你没有提供有效的日期。 - Murph

3
DateTime.ParseExact("20100524", "yyyyMMdd", Thread.CurrentThread.CurrentCulture);

1
那行代码是可行的,但是这里有比我的更好的解决方案,不需要点踩。 - Oscar Cabrero

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接