Web サービスからのデータを処理する MonoTouch アプリがあります。このデータには、タイムゾーンに固有の日付情報が含まれています。タイムゾーンはニュージーランドの UTC +12 です。
私のアプリは、現在の時刻に基づいてこのデータを表示します。これに関する問題は、アプリが異なる TimeZones で使用されている場合、デバイスの現在の時刻が正しくないため、データが正しく表示されないことです。
デバイスのロケール/タイムゾーン設定に関係なく、UTC +12 の現在の日時を取得するにはどうすればよいですか?
編集:
以下の回答に基づいて、次のコードを試しました。
TimeZoneInfo.ConvertTime (DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("Pacific/Auckland"));
このコードは私のコンピューターでは問題なく動作しますが、MonoTouch で実行すると次の例外が発生します。
System.ArgumentException: Kind propery of dateTime is Local but the sourceTimeZone does not equal TimeZoneInfo.Local
at System.TimeZoneInfo.ConvertTime (DateTime dateTime, System.TimeZoneInfo sourceTimeZone, System.TimeZoneInfo destinationTimeZone) [0x00018] in /Developer/MonoTouch/Source/mono/mcs/class/System.Core/System/TimeZoneInfo.cs:179
at System.TimeZoneInfo.ConvertTime (DateTime dateTime, System.TimeZoneInfo destinationTimeZone) [0x00000] in /Developer/MonoTouch/Source/mono/mcs/class/System.Core/System/TimeZoneInfo.cs:173