簡體   English   中英

在C#中將字符串轉換為DateTime-無法將字符串識別為有效的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)

前一個無效,而后兩個無效。 在這種情況下,這是因為PMfr-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM