【发布时间】:2016-09-23 19:09:28
【问题描述】:
我在 ASP.NET MVC Web 项目中工作,管理员可以在其中设置日期时间(开始日期时间/结束日期时间)和时区以显示某些消息。还有其他用户可能在同一时区(作为消息设置)或可能在不同的时区。 现在的任务是当用户日期时间与管理员设置的一个匹配时显示管理员设置消息。
我无法弄清楚的是,与不同时区的日期时间进行比较的正确方法是什么? 任何帮助将不胜感激。
更新:
//显示日期时间选择器
@(Html.Kendo().DateTimePicker()
.Name("datetimepicker")
.HtmlAttributes(new { style = "width:100%;" })
)
//在管理页面显示时区
var allTimeZones = TimeZoneInfo.GetSystemTimeZones();
List<SelectListItem> timeZoneLists = allTimeZones.Select(timeZone => new SelectListItem {Value = timeZone.Id, Text = timeZone.DisplayName}).ToList();
ViewBag.TimeZoneLists = timeZoneLists;
谢谢。
【问题讨论】:
-
始终使用 UTC 并且只显示本地时间
-
你的意思是我应该从用户那里获取时间并从管理员那里获取初始设置时间,将它们转换为 UTC 时间并进行比较??
-
您在设置时区时具体设置了什么?请给我们看一些例子。
-
时区将是时区的下拉菜单,因此管理员可以选择任何时区。 postimg.org/image/uwqiqtfsr
-
好的,但是请给我们一些您正在使用的示例代码。两边都有
DateTime和TimeZoneInfo吗?你在用DateTimeOffset吗?也许你已经硬编码了一个列表或其他东西。不清楚你的实现是什么,所以不清楚如何回答。请阅读帮助中心:How to create a Minimal, Complete, and Verifiable example 和 How do I ask a good question?
标签: asp.net-mvc datetime kendo-ui timezone