C#:从不同格式的字符串转换datetime

如果我的字符串是26/01/2011 00:14:00但我的电脑设置美国国家格式(上午:下午)如何将我的字符串转换为Datetime ? 我尝试Convert.ToDateTime()但它会导致错误。

正如其他人所说,你可以使用DateTime.TryParseExact,但你的日期似乎也有欧洲文化格式。 尝试使用它来执行转换可能没有什么坏处:

 CultureInfo enGB = new CultureInfo("en-GB"); string dateString; DateTime dateValue; // Parse date with no style flags. dateString = "26/01/2011 00:14:00"; DateTime.TryParseExact(dateString, "g", enGB, DateTimeStyles.None, out dateValue); 

使用DateTime.ParseExact或DateTime.TryParseExact 。 如果必须接受多种可能的日期时间格式,则这两种方法都具有带有格式字符串数组的重载。

就那种格式而言,它看起来像“dd / mm / yyyy HH:MM:ss”

我使用DateTime.Tryparse – 这样你就可以优雅地捕获并处理失败:

http://msdn.microsoft.com/en-us/library/system.datetime.tryparse.aspx