@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 循环遍历集合并将其添加到您的数据库表中。然后,如果需要,您可以将单个条目添加到表中,或根据需要调整 +-。