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



我们遵循MVC模式,这是在控制器或javascript中转换为UTC和Local的最佳位置?另外,我们是否需要在固定区域性中保存日期格式以支持全球化?(或者)在 MVC 中全球化日期时间格式是否有任何标准的经验法则/最佳实践?

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

服务器端

    您需要
  • 知道用户的时区。 通常,这是通过应用内某些设置页面上的用户选择来完成的。 知道时区后,通常在MVC控制器中使用TimeZoneInfo或Noda时间进行转换。

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

  • 您需要掌握时区更新,因为随着世界各国政府改变对其偏移量和 DST 转换日期的看法,时区规则可能会发生变化。

客户端

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

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

  • 有些错误可能会影响也可能不会影响您的转化。 注意它们。


关于您关于固定文化的问题 - 您需要详细说明"保存日期"的含义。 如果是指存储到数据库(如 SQL Server),则区域性和格式无关紧要。 将DateTime发送到数据库,而不是字符串。

相关内容

  • 没有找到相关文章

最新更新