首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文化和UICulture的区别是什么?

文化和UICulture的区别是什么?
EN

Stack Overflow用户
提问于 2012-03-01 06:22:21
回答 4查看 39.7K关注 0票数 131

有人能给我更多关于.NET框架中CultureUICulture之间的区别的信息吗?他们做什么,什么时候使用什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-01 06:27:38

Culture会影响与文化相关的数据(日期、货币、数字等)的显示方式。这里有几个例子:

代码语言:javascript
复制
var date = new DateTime(2000, 1, 2);
var number = 12345.6789;

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
Console.WriteLine(date); // 02.01.2000 00:00:00
Console.WriteLine(number.ToString("C")); // 12.345,68 €

Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA");
Console.WriteLine(date); // 2000-01-02 00:00:00
Console.WriteLine(number.ToString("C")); // 12 345,68 $

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Console.WriteLine(date); // 1/2/2000 12:00:00 AM
Console.WriteLine(number.ToString("C")); // $12,345.68

文化也会以同样的方式影响用户输入的解析:

代码语言:javascript
复制
const string numberString = "12.345,68";
decimal money;

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
money = decimal.Parse(numberString); // OK!

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
money = decimal.Parse(numberString); // FormatException is thrown, TryParse would return false

当心解析成功,但结果并不是您所期望的结果的情况。

代码语言:javascript
复制
const string numberString = "12.345";
decimal money;

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
money = decimal.Parse(numberString); // 12345

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
money = decimal.Parse(numberString); // 12.345, where the . is a decimal point

UICulture会影响应用程序将加载到哪个资源文件(Resources.lang.resx)。

因此,要加载德语资源(可能是本地化的文本),需要将UICulture设置为德语文化;要显示德语格式(对加载的资源没有任何影响),需要设置Culture

票数 156
EN

Stack Overflow用户

发布于 2017-09-06 13:39:20

Culture and UICulture

值是由两个字母组成的字符串对,第一个用于定义语言,第二个用于定义区域。示例:

en-GB这里en代表EnglishGB代表Great Briton

en-US这里en代表EnglishUS代表United States

Culture用于与文化相关的函数,如日期、时间。UICulture用于正确加载资源文件。

票数 2
EN

Stack Overflow用户

发布于 2016-05-29 13:57:57

除了@Vache令人惊叹的解释之外,还有一个小问题需要考虑:你可以在(页面级别和应用程序级别)设置UICulture和文化。

为了在应用程序级别设置它们,只需在web.config中添加全球化会话

例如<globalization uiCulture="es" culture="es-MX" />

要在页面级别设置它们,这很适合添加到特定的(单个)页面上,请在@ page指令内设置区域性和UICulture属性

例如<%@ Page UICulture="es" Culture="es-MX" %>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9507582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档