您的代码会更安全
我正在尝试解析一个TimeString,它看起来像:
11/Apr/2014:00:00:12 +0200
我的代码看起来像
DateTime.ParseExact("11/Apr/2014:00:00:12 +0200", "dd/MMM/yyyy:HH:mm:ss zzz", null)
我看了MSDN,它对我来说很好,但我不知道为什么我总是得到FormatException。
您应该添加InvariantCulture
作为格式提供程序。
var d = DateTime.ParseExact("11/Apr/2014:00:00:12 +0200", "dd/MMM/yyyy:HH:mm:ss zzz", CultureInfo.InvariantCulture);
您的格式字符串考虑到/
和:
字符是特定的格式分隔符,它们将解析为当前区域性中定义的分隔符,就像HH在您的格式中表示"小时"一样。请参阅此页面,查看时间分隔符和日期分隔符是否已预定义,并将由区域性特定值替换。
可以转义特殊字符,但我认为从长远来看,使用InvariantCulture