0

我有一个拥有国际用户(世界各地)的 MVC 4 应用程序。我想添加一个名为配置文件设置的新页面,用户可以在其中选择他们的区域设置,我的意思是他们应该能够选择:

  - time zone      (UTC +- .....)
  - date format    (dd.MM.yyyy or dd/MM/yyyy or MM/dd/yyyy ....)
  - time format    (12/24 - AM PM)
  - number format  (1234.56 or 1234,56)

用户选择他的区域设置后,所有特定数据(日期、时间、数字...)都应以该特定格式显示。

任何建议如何使这项工作?

4

1 回答 1

0

大多数时候,您不应该将文化格式的每一个细节都暴露给您的用户。相反,请提供您想要支持的文化的下拉列表。文化是使用代码指定的。一些常见的代码是en-US(英语/美国)、es-MX(西班牙语/墨西哥)和de-DE(德国/德语)。第一部分是指语言,第二部分是指特定的国家或地区。

选择文化代码后,您可以将其应用于每个用户,例如:

CultureInfo culture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = culture;

如果您使用的是特定于文化的资源文件,那么您还需要:

Thread.CurrentThread.CurrentUICulture = culture;

您可以在多个地方执行此操作,但一个常见的位置是在Application_BeginRequest您的 global.asax 文件中的事件中。

MSDN这里有一个很好的教程。

虽然在考虑区域设置时通常会考虑时区,但它们实际上是完全不同的东西,应该单独考虑。时区不能真正全局设置,您需要考虑它们如何影响您在使用日期和时间的每个地方的应用程序逻辑。你应该去TimeZoneInfo上课。如有疑问,请单独提问。虽然如果你搜索,你可能会发现很多已经被回答了。

于 2013-07-31T17:01:00.977 回答