1

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);

問題は、1 桁の日付の場合に先行スペースを受け入れない "d" にあります。また、「dd」には先頭に 0 が必要です。

HTTP/1.1 で許可されている 3 つの日付/時刻形式を既に処理している簡単な方法はありますか?

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 に答える