字符串的日期时间格式?

时间:2008-10-24 07:23:51

标签: .net datetime

如何将字符串转换为DateTime格式?例如,如果我有一个字符串,如:

"24/10/2008"

如何将其转换为DateTime格式?

5 个答案:

答案 0 :(得分:12)

使用DateTime.ParseExact

string str = "24/10/2008";
DateTime dt = DateTime.ParseExact(str, "dd/MM/yyyy", 
                                  Thread.CurrentThread.CurrentCulture);

(诚然,你应该考虑你真正想要解析它的文化。)

编辑:其他答案指定“null”作为第三个参数 - 这相当于使用Thread.CurrentThread.CurrentCulture

有关其他格式,请参阅MSDN中的"Custom Date and Time Format Strings"

答案 1 :(得分:4)

如果您不知道格式,请使用:

DateTime d = DateTime.Parse(dateString);

这尝试使用当前文化的格式规则解析日期和时间的字符串表示(例如,英语(美国)“en-US”,德语“de-DE”,......)。它会尝试忽略无法识别的数据,并使用当前日期填写年,月和日的缺失值(例如,如果仅解析包含时间的字符串)。

如果您知道字符串的已使用文化与当前文化不同,您可以指定要使用的文化:

CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US");
DateTime d = DateTime.Parse(dateString, culture);

你应该总是通过try-catch块来转换转换,因为字符串必须符合识别的模式。或者,您也可以使用方法DateTime.TryParse(dateString, out dateTime)测试字符串的有效性,该方法在成功时返回true,结果在dateTime中返回;否则就是假的。

如果您知道确切的格式,可以使用

DateTime d = DateTime.ParseExact(dateString, "dd/MM/yyyy", null);

(有关其他格式字符串,请参阅MSDN网站的Custom Date and Time Format Strings)。

答案 2 :(得分:3)

如果您不确定日期字符串的格式,我还建议您查看DateTime.TryParse。这样您就可以避免在Parse例程中处理非常昂贵的异常。

如果你确实知道完全每次都是什么格式,我还会推荐Jon Skeet建议使用DateTime.ParseExact

答案 3 :(得分:0)

尝试类似

的内容
DateTime date = System.DateTime.ParseExact(str, "dd/MM/yyyy", null);

时间可能会有效

DateTime date = System.DateTime.ParseExact(str, "HH:mm:ss", null);

答案 4 :(得分:0)

string str = "24/10/2008";
DateTime dt = Convert.ToDateTime(str);