2

私はMVC3とC#も初めてです。C# で MVC3 によるテスト用のブログ サイトを作成します。ユーザーが投稿を書くことができる場所なので、ユーザーの投稿日時を保存する必要があり、その日時を他のすべてのユーザーに独自の現地時間で表示したいと考えています。この場合、日時をGMTで保存する方がよいと誰もが考えました。

ユーザーのローカル日時を取得し、それをGMTに変換して保存する方法がわかりません。各ユーザーのローカル日時に保存された日時を変換して表示する方法がわかりません。

私を助けてください。お願いします

4

1 に答える 1

2

COLD TOLD には一点だけ、丁重に反対しなければなりません。を使用するDateTime.Nowと、アプリ サーバーを実行しているマシンの日付と時刻が取得されます。これは問題ありませんが、保存するときにタイムゾーンも一緒に保存する必要があります。そうしないと、変換時に、変換元のタイムゾーンがわかりません。それをアプリにハードコードしてから、別のタイムゾーンのデータ センター サーバーに移動した場合は、そのアプリの設定を変更する必要があります。

一方、常に を使用して日付と時刻を保存するDateTime.UtcNow場合は、データベースに 1 つの値を保存するだけで済みます。それをタイムゾーンロケールに変換するときが来たら、情報が最初に計算されたタイムゾーンを見つけるためにデータベースにアクセスする必要はありません-それは常にUTC / GMTです.

var destinationTimeZone = TimeZoneInfo.FindSystemTimeZoneById(
    "US Mountain Standard Time"); 

utc = DateTime.UtcNow;
mst = TimeZoneInfo.ConvertTimeFromUtc(utcTime, destinationTimeZone);

Console.WriteLine("UTC: " + utc.ToString("yyyy-MM-dd HH-mm-ss"));
Console.WriteLine("MST: " + mst.ToString("yyyy-MM-dd HH-mm-ss"));
于 2012-07-09T00:12:21.267 に答える