将混乱的日期字符串转换为c#中的dateTime对象
本文关键字:中的 dateTime 对象 转换 混乱 日期 字符串 | 更新日期: 2023-09-27 18:28:04
如何将字符串20120313
转换为包含值13-Mar-2012
的DateTime
对象?
我把它当成
DataEffectiveDate = Convert.ToDateTime(reader["date_id"]);
但它在这里已经失败了(转换为2001年1月1日)
您需要使用DateTime.ParseExact
:
DateTime date = DateTime.ParseExact(text, "yyyyMMdd",
CultureInfo.InvariantCulture);
如果你想把它作为"2012年3月13日",你需要:
string reformatted = date.ToString("dd-MMM-yyyy");
可选地传入您想用于月份名称等的任何区域性。
(另一种选择是使用我的Noda Time,它允许您将其解析为只是一个本地日期,而不必担心它将使用什么时间、时区等。)
当您有一个特定的格式时,ParseExact
是有用的:
string s = "20120313";
var when = DateTime.ParseExact(s, "yyyyMMdd", CultureInfo.InvariantCulture);
还有一个重载可以接受多种候选格式。
尝试DateTime.ParseExact
:
string date = DateTime.ParseExact(reader["date_id"], "yyyyMMdd", new CultureInfo("en"));