[英]c# DateTime convert error - String was not recognized as a valid DateTime
[英]Convert String to DateTime in C# - String was not recognized as a valid DateTime
我在這里查看了問題: 在C#.net中將字符串轉換為datetime
我嘗試傳遞的格式僅稍有不同,但無法正常使用。
我的代碼:
var date = DateTime.ParseExact(@"28/06/2012 06:04:10 PM", @"dd/MM/yyyy hh:mm:ss tt", null);
因此,我嘗試了上述問題的示例代碼:
var date = DateTime.ParseExact(@"14/04/2010 10:14:49.PM", @"dd/MM/yyyy hh:mm:ss.tt", null);
那也不行。 都給我
System.FormatException
String was not recognized as a valid DateTime.
任何想法將不勝感激! 謝謝!
問題是本地化。
考慮以下三個語句:
DateTime.ParseExact(@"14/04/2010 10:14:49.PM", @"dd/MM/yyyy hh:mm:ss.tt", new CultureInfo("fr-fr"))
DateTime.ParseExact(@"14/04/2010 10:14:49.PM", @"dd/MM/yyyy hh:mm:ss.tt", new CultureInfo("en"))
DateTime.ParseExact(@"14/04/2010 10:14:49.PM", @"dd/MM/yyyy hh:mm:ss.tt", CultureInfo.InvariantCulture)
前一個無效,而后兩個無效。 在這種情況下,這是因為PM
在fr-fr
無效。 如果您嘗試這樣做:
DateTime.ParseExact(@"14/04/2010 10:14:49.", @"dd/MM/yyyy hh:mm:ss.tt", new CultureInfo("fr-fr"))
它將正常工作。
正如評論中提到的,其他文化可能在其他項目上失敗。 en-za
使用其他日期分隔符導致失敗。
var dateString = "28/06/2012 06:04:10 PM";
DateTime dt = DateTime.ParseExact(dateString, "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
/
是日期分隔符,可能在您的文化中不完全是/
。 有可能發生同樣的問題:
,這是替換當前區域性時間分隔符。 嘗試逃脫既/
和:
:
var date = DateTime.ParseExact(@"28/06/2012 06:04:10 PM", @"dd\/MM\/yyyy hh\:mm\:ss tt", null);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.