DateTime 解析 ANSI C 时间戳
DateTime Parse ANSI C timestamp
我正在尝试按照 RFC2616
中指定的 HTTP/1.1 headers 格式解析 Date/Time 格式
如何在 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" 不接受前导 space,以防它是一个数字日期。 "dd" 需要前导 0。
是否有任何简单的解决方法,或者可能已经处理 HTTP/1.1 中允许的三种 date/time 格式的库?
使用 DateTime.TryParseExact
overload that takes string[]
as a format parameter with 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))
{
//
}
我正在尝试按照 RFC2616
中指定的 HTTP/1.1 headers 格式解析 Date/Time 格式如何在 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" 不接受前导 space,以防它是一个数字日期。 "dd" 需要前导 0。
是否有任何简单的解决方法,或者可能已经处理 HTTP/1.1 中允许的三种 date/time 格式的库?
使用 DateTime.TryParseExact
overload that takes string[]
as a format parameter with 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))
{
//
}