是否有办法修改从控制器获取的每个DateTime实例?
我在UTC时区保存在服务器上的日期时间。但在浏览器中我需要在客户端时区显示日期。 所以每次我必须在客户端时区手动转换日期时间:
model.DateCreated = ConvertToClientTimeZone(model.DateCreated)
这不舒服。所以我问可能的方法自动进行这种转换?
答案 0 :(得分:2)
如果您使用视图模型,您还可以将时区转换逻辑放在映射功能中,以将您的域模型转换为视图模型。
即。如果您使用AutoMapper我认为可以配置AutoMapper,以便在映射日期时自动执行从UTC(在DB中)到客户端时区的转换。这样就减少了忘记调用转换辅助函数并向用户显示错误的DateTime的可能性。
不要忘记您还必须从从客户端到数据库的DateTimes(从视图模型到域模型)进行转换。
答案 1 :(得分:0)
您可以编写自定义HTML帮助程序:
public static IHtmlString FormatDate(this HtmlHelper html, DateTime date)
{
string result = ... format the date however you like
return new HtmlString(result);
}
然后在视图中:
@Html.FormatDate(model.DateCreated)