1

我正在尝试解析RFC2616中指定的 HTTP/1.1 标头中的日期/时间格式

如何在 C# 中解析 A​​NSI C 时间戳?
我得到的最接近的是:

string dateFormat = "ddd MMM d HH':'mm':'ss yyyy";
DateTime time = DateTime.ParseExact("Mon Jan  2 15:04:05 2006", dateFormat, CultureInfo.InvariantCulture);

问题在于“d”不接受前导空格,以防它是单个数字日期。而“dd”则需要前导 0。

是否有任何简单的方法,或者可能已经处理了 HTTP/1.1 中三种允许的日期/时间格式的库?

4

1 回答 1

2

使用带有样式的格式参数的DateTime.TryParseExact重载怎么样?string[]AllowInnerWhite

string s = "Sun, 06 Nov 1994 08:49:37 GMT";
DateTime dt;
var formats = new[] 
{
    "ddd, dd MMM yyyy HH:mm:ss 'GMT'",
    "dddd, dd-MMM-yy HH:mm:ss 'GMT'",
    "ddd MMM  d HH:mm:ss yyyy"
};
if(DateTime.TryParseExact(s, formats, CultureInfo.InvariantCulture,
                          DateTimeStyles.AllowInnerWhite, out dt))
{
    //
}
于 2015-07-15T13:59:50.850 回答