Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 基于用户配置文件将区域设置应用于应用程序_Asp.net Mvc 4_Timezone_Cultureinfo - Fatal编程技术网

Asp.net mvc 4 基于用户配置文件将区域设置应用于应用程序

Asp.net mvc 4 基于用户配置文件将区域设置应用于应用程序,asp.net-mvc-4,timezone,cultureinfo,Asp.net Mvc 4,Timezone,Cultureinfo,我有一个MVC4应用程序,拥有国际用户(全世界)。我想添加一个名为“配置文件设置”的新页面,用户可以在其中选择其区域设置,这意味着他们应该能够选择: - 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)

我有一个MVC4应用程序,拥有国际用户(全世界)。我想添加一个名为“配置文件设置”的新页面,用户可以在其中选择其区域设置,这意味着他们应该能够选择:

  - 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)
用户选择其区域设置后,所有特定数据(日期、时间、编号…)应以该特定格式显示


有什么建议可以让这项工作顺利进行吗?

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

获得选定的区域性代码后,可以将其应用于每个用户,例如:

CultureInfo culture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = culture;
如果您使用的是特定于区域性的资源文件,则还需要:

Thread.CurrentThread.CurrentUICulture = culture;
您可以在多个位置执行此操作,但一个常见位置是global.asax文件中的
应用程序\u BeginRequest
事件

有一个很好的MSDN教程

当你考虑区域设置时,通常会想到时区,但实际上它们是完全不同的事情,应该分开考虑。时区不能真正地在全球范围内设置,您需要考虑它们如何影响您在日期和时间上工作的每个地方的应用逻辑。您应该查看
TimeZoneInfo
类。如果您有问题,请单独提问。虽然如果你搜索,你可能会发现很多问题已经得到了答案