我正在尝试解析RFC2616
中指定的HTTP/1.1报头中的日期/时间格式如何在c#中解析ANSI 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中允许的三种日期/时间格式?
如何使用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))
{
//
}