我使用ASP.NET MVC 4作为我的Web应用程序,所有数据库访问都是通过WCF服务。现在我想在用户时区显示系统中的所有日期。用户时区保存在数据库中,登录后,我将其保存在cookie中。我正在做的是在Controller中我正在调用一个实用工具方法并将所有日期时间转换为用户的时区。这是正确的方法吗?或者我应该直接在视图中调用实用程序方法吗?请建议处理这种情况的最佳方法。
答案 0 :(得分:0)
理想情况下,您的实用程序方法应该返回用户时区的时间(在传递一个帮助您确定用户时区的参数之后)。然后,您应该从控制器操作或业务层(或从填充视图模型的任何位置)调用实用程序方法,然后使用视图模型中的信息来呈现视图。
答案 1 :(得分:0)
始终将UTC日期存储在数据库中,因为您不知道谁将查看这些项目。
存储前
var dbDate = myDate.ToUniversalTime();
观看时:
var userDate = dbDate.ToLocalTime();
记得在进行SQL查询等之前将任何日期转换为UTC。
MSDN:http://msdn.microsoft.com/en-us/library/system.datetime.touniversaltime.aspx