@RameshRajendran ここに記事と記事のコードがあり、プロジェクトを完了できないと確信しています。しかし、うまくいけば、別の視点からそれを見るのに役立ちます. @varocarbasが指摘したように、最終的にコンパイルされた情報を保存するためのテーブルを作成するのに役立ちます.
記事へのリンク:
http://msdn.microsoft.com/en-us/library/vstudio/bb397781(v=vs.110).aspx
SupportsDaylightSavingTime プロパティを使用して、タイムゾーンのルールがあるかどうかを確認できます。
Visual Studio のオブジェクト ブラウザーを使用して、System.TimeZoneInfo のメンバーを表示することもできます。
これを、コントローラーのインデックス ActionResult とインデックス ビューの html ヘルパーで次のようにテストしました。繰り返しますが、これは、不快に思われる「大量の作業」ブロックを通過する方法を確認するのに役立ちます.
このコードは C# を使用して記述しましたが、VB で同等のものを作成しても問題はないと確信しています。
【コントローラー】
// Sample code from the article.
// Note: the collection only contains full hour offsets (i.e. New Delhi is in a half hour zone)
ReadOnlyCollection<TimeZoneInfo> tzCollection;
tzCollection = TimeZoneInfo.GetSystemTimeZones();
foreach (TimeZoneInfo timeZone in tzCollection)
{
Console.WriteLine(" {0}: {1}", timeZone.Id, timeZone.DisplayName);
}
// My modified version of its use.
// this code will create a dropdownlist with all the timezones available on my machine.
var theTimesInfo = new List<TimeZoneInfo>(tzCollection);
var theZones = new SelectList(theTimesInfo, "Id", "DisplayName", 1);
ViewData["theZones"] = theZones;
string myLocalZone = "Eastern Standard Time";
TimeZoneInfo myLocalDateTime = TimeZoneInfo.FindSystemTimeZoneById(myLocalZone);
string theZoneSelected = Request.QueryString.Get("theZones");
if (theZoneSelected == string.Empty || theZoneSelected == null)
{
theZoneSelected = myLocalZone;
}
TimeZoneInfo selectedTimeZone = TimeZoneInfo.FindSystemTimeZoneById(theZoneSelected);
DateTime CurrentTimeZoneDateAndTime = TimeZoneInfo.ConvertTime((DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Unspecified)), myLocalDateTime, selectedTimeZone);
ViewBag.CurrentTimeZoneSelected = selectedTimeZone.DisplayName.ToString();
ViewBag.CurrentDateTimeSelected = CurrentTimeZoneDateAndTime.ToString();
[更新]ビューコードを編集して、返された値を表示しました。
[ 意見 ]
<p>
The Select TimeZone is: @ViewBag.CurrentTimeZoneSelected<br />
The current Date and Time for the Selected TimeZone is: @ViewBag.CurrentDateTimeSelected
</p>
<form>
@Html.DropDownList("theZones", ViewData["theZones"] as SelectList)
<input type="submit" name="submit" value="Select This Time Zone" />
</form>
foreach ループを使用してコレクションを反復処理し、それを db テーブルに追加できます。次に、必要に応じて、個々のエントリをテーブルに追加するか、必要に応じて +- を調整できます。