2016-09-23 26 views
0

Imは、管理者が特定のメッセージを表示するために日付時間(Start Datetime/End Datetime)とタイムゾーンを設定できるASP.NET MVC Webプロジェクトで動作します。同じタイムゾーンにある(メッセージ設定と同じ)か、異なるタイムゾーンにある可能性のある他のユーザーがいます。 これで、管理者が設定した時刻とユーザの時刻が一致したときに、管理者の設定メッセージが表示されます。ASP.NET MVCで異なるタイムゾーンと昼間の時間を扱う

私が把握できなかったことは、時間の節約を含むさまざまなタイムゾーンで日付の時間と比較する適切な方法は何ですか? 助けていただければ幸いです。

更新:

//管理ページに

var allTimeZones = TimeZoneInfo.GetSystemTimeZones(); 

List<SelectListItem> timeZoneLists = allTimeZones.Select(timeZone => new SelectListItem {Value = timeZone.Id, Text = timeZone.DisplayName}).ToList(); 
ViewBag.TimeZoneLists = timeZoneLists; 

おかげでタイムゾーンを表示するには、日付時刻ピッカー

@(Html.Kendo().DateTimePicker() 
     .Name("datetimepicker") 
     .HtmlAttributes(new { style = "width:100%;" }) 
) 

//を表示します。

+1

常にUTCを使用し、現地時間でのみ表示することによって、 –

+0

は、ユーザーと初期設定時間の両方を管理者から取得し、UTC時間に変換して比較する必要があることを意味するのでしょうか? ? – sanjeev40084

+0

タイムゾーンを設定すると*具体的に何を設定していますか?いくつかの例を教えてください。 –

答えて

0
// your input datetime and timezone 
DateTime dt1 = ... 
DateTime dt2 = ... 
TimeZoneInfo tz1 = TimeZoneInfo.FindSystemTimeZoneById(...); 
TimeZoneInfo tz2 = TimeZoneInfo.FindSystemTimeZoneById(...); 

// Normalize each input to UTC 
DateTime utc1 = TimeZoneInfo.ConvertTimeToUtc(dt1, tz1); 
DateTime utc2 = TimeZoneInfo.ConvertTimeToUtc(dt2, tz2); 

// compare 
if (utc1 > utc2) 
{ 
    // whatever 
} 

あなたが変換を行う前に、dt1dt2値の.Kindプロパティは、両方のDateTimeKind.Unspecifiedであることを確認してください。 LocalまたはUtc種類のデータが入力されている場合は、期待どおりに動作しません。

+0

初めての日時には、ウェブページのadminによってセットアップされ、データベースに保存されているので、私は情報を取得できます。しかし、ユーザー側では、ブラウザからタイムゾーンを取得するにはどうすればよいですか? – sanjeev40084

+0

これはまったく異なる質問です。[これまでに答えられました](http://stackoverflow.com/a/18252251/634824)。また、[this](http://stackoverflow.com/a/16526897/634824)、[this](http://stackoverflow.com/a/18178299/634824)、[this](http: /stackoverflow.com/a/16351529/634824)。 –

関連する問題