気をつけて。返される時間は UTC です。ローカル タイム ゾーンが結果に影響を与えることを意図せずしてしまう可能性があります。
たとえば、他の回答の1つがこのコードを提案しました:
DateTime dt = DateTime.ParseExact("Fri May 03 15:22:09 +0000 2013",
"ddd MMM dd HH:mm:ss zzz yyyy",
CultureInfo.InvariantCulture);
アリゾナ (UTC-7) にある私のコンピューターでのこの結果は次のとおりです。
5/3/2013 8:22:09 AM (dt.Kind == DateTimeKinds.Local)
これは私の現地時間の正しい瞬間ですが、私に与えられたものではありません.Kind
。物件に細心の注意を払わない限り、おそらくあなたが期待しているものではありません.
代わりに、次の操作を実行できます。
DateTime dt = DateTime.ParseExact("Fri May 03 15:22:09 +0000 2013",
"ddd MMM dd HH:mm:ss zzz yyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.AdjustToUniversal);
これは以下を返します:
5/3/2013 3:22:09 PM (dt.Kind == DateTimeKinds.Utc)
あなたが始めたものとどちらがよりよく一致しますか。
これは、Twitter から返される値が常に UTC であることを前提としています。彼らの FAQ によると、そのようです。しかし、オフセットが与えられているので、提供されたオフセットを使用する方が正しいかもしれないと主張する人もいるでしょう。オフセットが変更された場合でも、コードを壊したくありません。したがって、DateTimeOffset
クラスを使用する方が適切です。
DateTimeOffset dto = DateTimeOffset.ParseExact("Fri May 03 15:22:09 +0000 2013",
"ddd MMM dd HH:mm:ss zzz yyyy",
CultureInfo.InvariantCulture);
その結果は次のとおりです。
5/3/2013 3:22:09 PM +00:00