Windows Azure を使用してバージニア州のデータセンターに展開した C# アプリケーションで MVC 4 を開発しました。ユーザー アクティビティをアプリケーションに記録し、ユーザー名とアクティビティが開始された時刻の両方を記録します。記録された時間は、フィジー標準時間に変換する必要があります。オンラインで見つけたものに基づいて、この機能を実現するための拡張メソッドを作成しました。
public static DateTime ToFijiTime(this DateTime datetime)
{
datetime = DateTime.SpecifyKind(datetime, DateTimeKind.Utc);
TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("Fiji Standard Time");
DateTime MyDateTime = TimeZoneInfo.ConvertTime(datetime, tz);
return TimeZoneInfo.ConvertTimeToUtc(MyDateTime, tz);
}
ただし、これは実際に展開するとうまく機能しません。私は正しい日付とほぼ正しい時間を取得します。何らかの理由で、常に "am" 時間として表示されます。たとえば、時刻が 2/04/2013 6:30:19 PM (フィジー標準時) の場合、記録される時刻は実際には 2/04/2013 6:30:19 AM (フィジー標準時) ですが、時刻は朝 like2/04/2013 1:30:19 AM が正しく保存されます。私のコードの何が問題なのか誰か教えてください。