Parse DateTime in C#

本文关键字:in DateTime Parse | 更新日期: 2023-09-27 17:59:58

我正在尝试解析一个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。

Parse DateTime in C#

您应该添加InvariantCulture作为格式提供程序。

var d = DateTime.ParseExact("11/Apr/2014:00:00:12 +0200", "dd/MMM/yyyy:HH:mm:ss zzz", CultureInfo.InvariantCulture);

您的格式字符串考虑到/:字符是特定的格式分隔符,它们将解析为当前区域性中定义的分隔符,就像HH在您的格式中表示"小时"一样。请参阅此页面,查看时间分隔符和日期分隔符是否已预定义,并将由区域性特定值替换。

可以转义特殊字符,但我认为从长远来看,使用InvariantCulture

您的代码会更安全