2016-07-04 17 views
0

今、メルボルンの時間は午後5:30です。 LAでは12:30 AMです。タイムゾーンに従って日時を表示する方法は?

現在、データベースレコードが作成されています。それは "creation_datetime"タイムスタンプを持っています。

メルボルンのお客様がタイムスタンプを見ると、「2016-07-04 17:30(UTC + 10:00)」と表示したいと思います。 LAのお客様がその時間を見ると、「2016-07-04 00:30(UTC-8:00)」と表示したいと思います。

は "getRecordTimeStamp(123)" の機能を仮定しましょう "123" は、レコードIDでのDateTime、としてそのタイムスタンプを返します。 C#で "2016-07-04 17:30(UTC + 10:00)"と "2016-07-04 00:30(UTC-8:00)"を生成するにはどうすればよいですか?

+0

まあが返されているもののDateTime?それはUTCのタイムスタンプですか?これまでに何を試しましたか?これはどのようなアプリケーションで、ユーザーのタイムゾーンをどのように知っていますか? –

答えて

0

私はそれを働いた:

DateTime now = DateTime.Now; 
DateTime utcTimeNow = TimeZoneInfo.ConvertTimeToUtc(now); 

TimeZoneInfo melbourneTimeZone = TimeZoneInfo.FindSystemTimeZoneById("E. Australia Standard Time"); 
DateTime melbourneTime = TimeZoneInfo.ConvertTimeFromUtc(utcTimeNow, melbourneTimeZone); 
Console.WriteLine("The date and time are {0} {1}.", melbourneTime, melbourneTimeZone.IsDaylightSavingTime(melbourneTime) ? melbourneTimeZone.DaylightName : melbourneTimeZone.StandardName); 

TimeZoneInfo laTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"); 
DateTime laTime = TimeZoneInfo.ConvertTimeFromUtc(utcTimeNow, laTimeZone); 
Console.WriteLine("The date and time are {0} {1}.", laTime, laTimeZone.IsDaylightSavingTime(laTime) ? laTimeZone.DaylightName : laTimeZone.StandardName); 


Console.ReadKey(); 
関連する問題