DateTime オブジェクトの RFC-1123 形式の日付を取得すると、現在の現地時間が表示されますが、タイムゾーンは GMT になります (これは不正確です)。
DateTime.Now.ToString("r");
戻り値
Fri, 12 Feb 2010 16:23:03 GMT
午後 4 時 23 分ですが、私のタイムゾーンは UTC+10 です (さらに、現在は夏時間を観察しています)。
これで、最初に UTC に変換することで「正しい」戻り値を取得でき
DateTime.UtcNow.ToString("r");
ます。
Fri, 12 Feb 2010 05:23:03 GMT
ただし、理想的には、適切なタイムゾーンを取得したいと思います。
Fri, 12 Feb 2010 16:23:03 +1100
現在の CultureInfo を渡しても何も変わりません。TimeZoneInfo.Local.GetUtcOffset(...) で UTC オフセットを取得し、そこからタイムゾーン文字列をフォーマットできますが、GMT ビットを取り除いて置き換えるのは面倒です。
正しいタイムゾーンを強制的に含める方法はありますか?