如何將字符串20120313
轉換爲DateTime
對象,其值爲13-Mar-2012
?將雜亂的日期字符串轉換爲c中的dateTime對象#
我把它拿來作爲
DataEffectiveDate = Convert.ToDateTime(reader["date_id"]);
但它已經在這裏失敗(轉換爲1/1/2001)
如何將字符串20120313
轉換爲DateTime
對象,其值爲13-Mar-2012
?將雜亂的日期字符串轉換爲c中的dateTime對象#
我把它拿來作爲
DataEffectiveDate = Convert.ToDateTime(reader["date_id"]);
但它已經在這裏失敗(轉換爲1/1/2001)
您需要使用DateTime.ParseExact
:如果你想
DateTime date = DateTime.ParseExact(text, "yyyyMMdd",
CultureInfo.InvariantCulture);
然後它作爲「2012年3月13日」,您需要:
string reformatted = date.ToString("dd-MMM-yyyy");
...可選傳遞您要使用的月份名稱等任何文化
(另一種方法是用我Noda Time,它允許您解析這是只是一個本地日期,沒有任何問題它會用什麼時間,時區等)
誰會想到一個字符串可以隱式轉換爲DateTime ... – flq 2012-03-15 08:04:36
@flq:修正,謝謝。 (你可能剛剛編輯過它......) – 2012-03-15 08:05:15
當你心裏有一個特定的格式,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"));
轉換爲'string'丟失。 – clearpath 2012-03-15 08:05:27
你的意思是你要轉換20120313或13-MAR-2012? – 2012-03-15 08:01:19
只有一條評論 - 我認爲20120313比2012年3月13日有點*少*雜亂的格式。 – 2012-03-15 08:04:34