從DateTime.TryParseExact
一個日期和時間其 日期時間等效的指定字符串表示形式轉換。 字符串表示的格式必須爲 與指定的格式完全匹配。
就你而言,它們不是。改爲使用yyyy-MM-dd HH:mm:ss
格式。
string s = "2014-09-25 09:18:24";
DateTime dt;
if(DateTime.TryParseExact(s, "yyyy-MM-dd HH:mm:ss",
CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
{
Console.WriteLine(dt);
}
這是一個有點不清楚,但如果你的字符串是09/25/2014 09:18:24
,那麼你可以使用MM/dd/yyyy HH:mm:ss
格式代替。只是一個小費,"/"
custom format specifier具有特殊含義作爲取代我與當前文化或提供文化日期分隔。這意味着,如果您的CurrentCulture
或提供的文化的DateSeparator
不是/
,則如果您的格式和字符串完全匹配,則您的解析操作將失敗甚至。
如果你有已經一個DateTime
並要格式化它,你可以使用DateTime.ToString(string)
method等;
dt.ToString("yyyy-mm-dd", CultureInfo.InvariantCulture); // 2014-09-25
或
dt.ToString("yyyy-mm-dd HH:mm:ss", CultureInfo.InvariantCulture); // 2014-09-25 09:18:24
記住,DateTime
沒有任何隱含格式。它只包含日期和時間值。它們的字符串表示有格式。
[轉換字符串爲DateTime C#的.NET]的可能重複(http://stackoverflow.com/questions/919244/converting-string-to-datetime-c-net) – 2014-11-04 11:15:35
你對打擾和解析感到困惑嗎?如果輸入字符串是「09/25/2014」,爲什麼要用'yyyy-MM-dd'解析它? – 2014-11-04 11:17:04
對於'DateTime'存儲的內容,您似乎也感到困惑......它不包含*格式......它只是一個日期和時間。看到http://stackoverflow.com/questions/9763278 – 2014-11-04 11:19:15