私は、UTCの日付をISO 8601の文字列に変換してWeb api経由で送信する場合があります。これを行うための推奨される方法はとても似のTimeZoneInfoを使用することです:これは私のローカルマシン上で正常に動作しますC#DateTime.ToString "o"形式でAzureに異なる文字列を返します
var configuredTimeZone = TimeZoneInfo.FindSystemTimeZoneById(timeZoneString);
var localTime = DateTime.SpecifyKind(TimeZoneInfo.ConvertTimeFromUtc(utcTime, configuredTimeZone), DateTimeKind.Local);
var stringResult = localTime.ToString("o");
が、私は、ToStringメソッドは、コードがでホストされている別の文字列を出力非常に奇妙な状況に実行していますよAzureウェブアプリ。地方で私は2017-02-20T00:00:00-06:00(これは私が必要とするタイムゾーン情報を含んでいるので、私が欲しいものです)ですが、Azureでホストされると2017-02-20T00:00:00 + 00:00。(これはUTCで、私が欲しいものではない)。私が手動でタイムゾーンを適用しているので、フォーマットが間違ったタイムゾーン情報を追加している理由がわかりません。誰もこれに前に遭遇しましたか?
'DateTime'はタイムゾーンを保存できません。 – SLaks
、Azureの* local *タイムゾーンはUTCです。 –
私は手動でTimeZoneInfo.ConvertTimeFromUtcを介して必要なタイムゾーンを提供しています。だから、AzureのUTCを使用して変換がどうなるのでしょうか? –