全球化日期和MVC中的时间格式

时间:2015-06-18 13:41:22

标签: .net asp.net-mvc datetime localization utc

我们正在关注MVC模式,这是在控制器或javascript中转换为UT和toLocal的最佳位置?另外,我们是否需要在不变文化中保存日期格式以支持全球化? (或)是否有任何标准的拇指规则/最佳实践来全球化MVC中的日期时间格式?

1 个答案:

答案 0 :(得分:1)

每种方法都有其优点和缺点。

服务器端

  • 您需要知道用户的时区。通常,这是通过应用程序中某些设置页面上的用户选择来完成的。了解时区后,通常会在MVC控制器中使用TimeZoneInfoNoda Time进行转换。

  • 您需要了解用户的文化(例如en-USfr-FR等)以显示正确的格式(例如{{1} vs} MM/dd/yyyy)。这可以通过.NET全球化来完成。格式化应该在MVC 视图中完成,而不是在控制器中完成。

  • 您需要随时了解时区更新,因为时区规则可能会随着世界各国政府改变对其抵消和DST过渡日期的看法而改变。

客户端

  • 您只需将UTC时间发送到浏览器,然后将其转换为本地时区。无需用户选择 - 只要您只关心他们当前的当地时区。

  • 正确地进行格式化仍然很棘手。像moment.js这样的图书馆可以提供帮助。

  • some bugs可能会影响您的转化,也可能不会影响您的转化次数。请注意它们。

关于你关于不变文化的问题 - 你需要详细说明你的意思"保存日期"。如果您的意思是存储到数据库(如SQL Server),则文化和格式无关紧要。发送dd/MM/yyyy到您的数据库,而不是字符串。