1

ASP.NET アプリケーションで、リモート サーバーからいくつかの画像を取得するときに変更日を確認する必要があります。「Last-Modified」のヘッダー値は、次のような文字列です。

  • 2011 年 12 月 8 日木曜日 19:57:12 G12T
  • 2003 年 8 月 14 日木曜日 16:13:20 G8T

.NET のDateTime.Parse()メソッドはこれらで失敗しますFormatException(「文字列は有効な DateTime として認識されませんでした。インデックス 26 から始まる不明な単語があります。」)。(ny) 解析メソッドにこれらのタイム ゾーン インジケーターを認識させるために渡すことができるオプションはありますか? 私は以前にそれらを見たことがなく、Google の検索では、フォーラムや同様のサイトでいくつかの明らかな使用法が見つかりましたが、それらが何を意味するかについての有用な情報はありません.

(奇妙なことに、同じ画像の「Date」のヘッダー値は「GMT」で終わります。リモート サーバーは IIS 7.5 です。)

4

1 に答える 1

2

今は簡単に確認できませんが、これはうまくいくかもしれません

DateTimeOffset result = DateTimeOffset.ParseExact(text,
    "ddd, dd MMM yyyy HH:mm:ss 'G'z'T'",
    CultureInfo.InvariantCulture);

それはzカスタム指定子を使用しています... これは常に記号でフォーマットされますが、解析時には必要ない場合があります。

最先端のコードを喜んで使用する場合は、Noda TimeOffsetDateTimePattern 1.2 (未リリース)で ofを使用して対応できるはずですddd, dd MMM yyyy HH:mm:ss 'G'o<-H>'T'。繰り返しますが、今はテストできませんが、うまくいくと思います。ただし、現在リリースされていないコードで実行することを意味します...

于 2013-07-17T21:55:50.687 に答える