7

C# は、現在の日付を取得する方法を提供しますDateTime.Now。しかし問題は、私のサーバーが米国にあり、使用すると米国の時間を取得することですDateTime.Now

私のユーザーは世界中から来ているので、C# で特定の国の現在の現地時間を取得する方法はありますか? (私は各ユーザーのロケールを持っているので、各ロケールの現在の時刻を取得できれば安全です)

タイムゾーンを使用する方法を見てきましたが、タイムゾーンと国の参照を維持する必要があります。

私は検索しましたが、ここでの質問のほとんどは、UTC 時間を現地時間に、またはその逆に変換することに関するものです。誰かが私を啓発できることを願っています。

4

2 に答える 2

5

UTC 時間(DateTime.UtcNow)を使用してサーバーで時間を保存し、ユーザーのタイム ゾーンに応じて、この utc 時間を変更します。データベースに現地時間を保存しない

于 2013-01-10T05:48:03.197 に答える
3

TimeZoneInfoクラスを見てください。DST (夏時間) を維持しながら、ローカル時間からサーバー時間に変換できるはずです。

DateTimeOffset newTime = TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow, TimeZoneInfo.FindSystemTimeZoneById("AppTimeZone"));

また、偉大な Jon Skeet Noda Timeの 1 人によるオープン ソース タイム ゾーンの実装も見つけることができます。

于 2013-01-10T05:51:21.287 に答える