2

我正在为我的 Web 应用程序使用 ASP.NET MVC 4,所有数据库访问都是通过 WCF 服务进行的。现在我想在用户时区显示我系统中的所有日期。用户时区保存在数据库中,登录时,我将其保存在 cookie 中。我正在做的是在控制器中调用实用程序方法并将所有日期时间转换为用户的时区。这是正确的做法吗?或者我应该直接在视图中调用实用程序方法吗?请建议处理这种情况的最佳方法。

4

2 回答 2

1

理想情况下,您的实用程序方法应该返回用户时区的时间(在传递给它一个帮助您确定用户时区的参数之后)。然后,您应该从控制器操作或业务层(或从您填充视图模型的任何位置)调用您的实用程序方法,然后使用视图模型中的信息来呈现您的视图。

于 2012-11-19T08:33:48.223 回答
0

始终将 UTC 日期存储在数据库中,因为您不知道谁将查看这些项目。

存放前

var dbDate = myDate.ToUniversalTime();

并且在查看时:

var userDate = dbDate.ToLocalTime();

请记住在进行 SQL 查询等之前将任何日期转换为 UTC。

MSDN:http: //msdn.microsoft.com/en-us/library/system.datetime.touniversaltime.aspx

于 2012-11-19T08:39:22.473 回答