如何将字符串转换为DateTime格式?例如,如果我有一个字符串,如:
"24/10/2008"
如何将其转换为DateTime格式?
答案 0 :(得分:12)
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);