2012-01-31 12 views
0

DateTime.nowを使用して時計を構築し、サーバーからタイムゾーンを受信します。 問題は、DateTimeが古いタイムゾーンを使用し続けることです。DateTime.nowはタイムゾーンの変更に応答しません

(私は再起動せずに受信したとき、それは新しいタイムゾーン設定を使用して開始したい)

私はこの問題を回避するにはどうすればよいですか?

+0

はどのようにして、「サーバーからのタイムゾーンを受けます」か? TimeZoneInfoオブジェクトを取得していますか、またはローカルタイムゾーンに設定されているローカルマシンですか? – RQDQ

+0

DateTimeはシステムの現在の時刻を一定の精度で表すためです。それは他に何も表していません。このサイトの尊敬されているメンバーによるプロジェクトがあります。それはDateTimeを延長しようとしていることです。私はNoda Timeと呼ばれています。 –

答えて

0

DateTimeの代わりにTimeZoneクラスを使用してみましたか?私はそれが違いをもたらすが、見て価値があるかどうかはわかりません。

DateTime baseUTC = new DateTime(2000, 1, 1); 
TimeZone localZone = TimeZone.CurrentTimeZone; 
DateTime localTime = localZone.ToLocalTime(baseUTC); 
1

あなたが希望の時間帯に変換現在の現地時間にする必要があります。このようなもの:

var timeInServerTimezone = TimeZoneInfo.ConvertTime(DateTime.Now, timeZoneInfoReceivedFromServer); 
関連する問題