cultureinfo?C#CultureInfo 和CultureUIInfo的区别
各位老铁们好,相信很多人对cultureinfo都不是特别的了解,因此呢,今天就来为大家分享下关于cultureinfo以及C#CultureInfo 和CultureUIInfo的区别的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
string.format用法
参数
format
类型:System..::.String
复合格式字符串。
args
类型:array<System..::.Object>[]()[]
包含零个或多个要格式化的对象的 Object数组。
返回值
类型:System..::.String
format的一个副本,其中格式项已替换为 args中相应 Object实例的 String等效项。
异常
异常条件
ArgumentNullException format或 args为 nullNothingnullptrnull引用(在 Visual Basic中为 Nothing)。
FormatException format无效。
-或-
用于指示要格式化的参数的数字小于零,或者大于等于 args数组的长度。
备注
此方法使用.NET Framework的复合格式设置功能将对象的值转换为其文本表示形式,并将该表示形式嵌入字符串中。.NET Framework提供了广泛的格式设置支持,下面的格式设置主题中对此有更详细的描述。
有关 Format、AppendFormat等方法以及 WriteLine的某些重载所支持的复合格式设置功能的更多信息,请参见复合格式设置。
有关数值格式说明符的更多信息,请参见标准数字格式字符串和自定义数字格式字符串。
有关日期和时间格式说明符的更多信息,请参见标准日期和时间格式字符串和自定义日期和时间格式字符串。
有关枚举格式说明符的更多信息,请参见枚举格式字符串。
有关格式设置的更多信息,请参见为类型设置格式和格式设置概述。
format参数由零个或多个文本序列与零个或多个索引占位符混合组成,其中索引占位符称为格式项,它们与此方法的参数列表中的对象相对应。格式设置过程将每个格式项替换为相应对象值的文本表示形式。
格式项的语法是{索引[,对齐方式][:格式字符串]},它指定了一个强制索引、格式化文本的可选长度和对齐方式,以及格式说明符字符的可选字符串,其中格式说明符字符用于控制如何设置相应对象的值的格式。格式项的组成部分包括:
索引
从零开始的整数,指示对象列表中要格式化的元素。如果由索引指定的对象为 nullNothingnullptrnull引用(在 Visual Basic中为 Nothing),则格式项将被空字符串("")替换。
对齐方式
可选整数,指示包含格式化值的区域的最小宽度。如果格式化值的长度小于对齐方式,则用空格填充该区域。如果对齐方式为负,则格式化值将在该区域中左对齐;如果对齐方式为正,则格式化值将右对齐。如果没有指定对齐方式,则该区域的长度为格式化值的长度。如果指定对齐方式,则需要使用逗号。
格式字符串
可选的格式说明符字符串。如果没有指定格式字符串,并且对应的参数实现了 IFormattable接口,则将 nullNothingnullptrnull引用(在 Visual Basic中为 Nothing)用作 IFormattable..::.ToString格式字符串。因此,IFormattable..::.ToString的所有实现都必须允许 nullNothingnullptrnull引用(在 Visual Basic中为 Nothing)作为格式字符串,并以 String对象的形式返回对象表示形式的默认格式设置。如果指定格式字符串,则需要使用冒号。
必须使用前导大括号字符和尾部大括号字符,即“{”和“}”。若要在 format中指定单个大括号字符,请指定两个前导大括号字符或尾部大括号字符;即“{{”或“}}”。
如果 format的值为“Thank you for your purchase of{0:####} copies of Microsoft®.NET(Core Reference).”,并且 arg[0]是值为 123的 Int16,则返回值为:
“Thank you for your purchase of 123 copies of Microsoft®.NET(Core Reference).”
如果 format的值为“Brad's dog has{0,-8:G} fleas.”,arg[0]是值为 42的 Int16(在此示例中,下划线表示填充空格),则返回值为:
“Brad's dog has 42______ fleas.”
示例
下面的代码示例演示数字、日期和枚举的标准格式设置说明符。
Visual Basic复制代码
' This code example demonstrates the String.Format() method.
' This example uses the provider parameter to supply formatting
' information using the invariant culture.
Imports System.Globalization
Class Sample
Public Enum Color
Yellow= 1
Blue= 2
Green= 3
End Enum'Color
Private Shared thisDate As DateTime= DateTime.Now
Public Shared Sub Main()
' Store the output of the String.Format method in a string.
Dim s As String=""
Console.Clear()
' Format a negative integer or floating-point number in various ways.
Console.WriteLine("Standard Numeric Format Specifiers")
s= String.Format(CultureInfo.InvariantCulture, _
"(C) Currency:........{0:C}"& vbCrLf& _
"(D) Decimal:.........{0:D}"& vbCrLf& _
"(E) Scientific:.......{1:E}"& vbCrLf& _
"(F) Fixed point:.......{1:F}"& vbCrLf& _
"(G) General:.........{0:G}"& vbCrLf& _
"(default):........{0}(default='G')"& vbCrLf& _
"(N) Number:.........{0:N}"& vbCrLf& _
"(P) Percent:.........{1:P}"& vbCrLf& _
"(R) Round-trip:.......{1:R}"& vbCrLf& _
"(X) Hexadecimal:.......{0:X}"& vbCrLf, _
- 123,- 123.45F)
Console.WriteLine(s)
' Format the current date in various ways.
Console.WriteLine("Standard DateTime Format Specifiers")
s= String.Format(CultureInfo.InvariantCulture.DateTimeFormat, _
"(d) Short date:.......{0:d}"& vbCrLf& _
"(D) Long date:........{0:D}"& vbCrLf& _
"(t) Short time:.......{0:t}"& vbCrLf& _
"(T) Long time:........{0:T}"& vbCrLf& _
"(f) Full date/short time:..{0:f}"& vbCrLf& _
"(F) Full date/long time:...{0:F}"& vbCrLf& _
"(g) General date/short time:.{0:g}"& vbCrLf& _
"(G) General date/long time:.{0:G}"& vbCrLf& _
"(default):........{0}(default='G')"& vbCrLf& _
"(M) Month:..........{0:M}"& vbCrLf& _
"(R) RFC1123:.........{0:R}"& vbCrLf& _
"(s) Sortable:........{0:s}"& vbCrLf& _
"(u) Universal sortable:...{0:u}(invariant)"& vbCrLf& _
"(U) Universal sortable:...{0:U}"& vbCrLf& _
"(Y) Year:..........{0:Y}"& vbCrLf, _
thisDate)
Console.WriteLine(s)
' Format a Color enumeration value in various ways.
Console.WriteLine("Standard Enumeration Format Specifiers")
s= String.Format(CultureInfo.InvariantCulture, _
"(G) General:.........{0:G}"& vbCrLf& _
"(default):........{0}(default='G')"& vbCrLf& _
"(F) Flags:..........{0:F}(flags or integer)"& vbCrLf& _
"(D) Decimal number:.....{0:D}"& vbCrLf& _
"(X) Hexadecimal:.......{0:X}"& vbCrLf, _
Color.Green)
Console.WriteLine(s)
End Sub'Main
End Class'Sample
'
' This example displays the following output to the console:
'
' Standard Numeric Format Specifiers
'(C) Currency:........(123.00)
'(D) Decimal:.........-123
'(E) Scientific:.......-1.234500E+002
'(F) Fixed point:.......-123.45
'(G) General:.........-123
'(default):........-123(default='G')
'(N) Number:.........-123.00
'(P) Percent:.........-12,345.00%
'(R) Round-trip:.......-123.45
'(X) Hexadecimal:....... FFFFFF85
'
' Standard DateTime Format Specifiers
'(d) Short date:....... 07/09/2007
'(D) Long date:........ Monday, 09 July 2007
'(t) Short time:....... 13:42
'(T) Long time:........ 13:42:50
'(f) Full date/short time:.. Monday, 09 July 2007 13:42
'(F) Full date/long time:... Monday, 09 July 2007 13:42:50
'(g) General date/short time:. 07/09/2007 13:42
'(G) General date/long time:. 07/09/2007 13:42:50
'(default):........ 07/09/2007 13:42:50(default='G')
'(M) Month:.......... July 09
'(R) RFC1123:......... Mon, 09 Jul 2007 13:42:50 GMT
'(s) Sortable:........ 2007-07-09T13:42:50
'(u) Universal sortable:... 2007-07-09 13:42:50Z(invariant)
'(U) Universal sortable:... Monday, 09 July 2007 20:42:50
'(Y) Year:.......... 2007 July
'
' Standard Enumeration Format Specifiers
'(G) General:......... Green
'(default):........ Green(default='G')
'(F) Flags:.......... Green(flags or integer)
'(D) Decimal number:..... 3
'(X) Hexadecimal:....... 00000003
C#复制代码
// This code example demonstrates the String.Format() method.
// Formatting for this example uses the"en-US" culture.
using System;
using System.Globalization;
class Sample
{
enum Color{Yellow= 1, Blue, Green};
static DateTime thisDate= DateTime.Now;
public static void Main()
{
// Store the output of the String.Format method in a string.
string s="";
Console.Clear();
// Format a negative integer or floating-point number in various ways.
Console.WriteLine("Standard Numeric Format Specifiers");
s= String.Format(CultureInfo.InvariantCulture,
"(C) Currency:........{0:C}\n"+
"(D) Decimal:.........{0:D}\n"+
"(E) Scientific:.......{1:E}\n"+
"(F) Fixed point:.......{1:F}\n"+
"(G) General:.........{0:G}\n"+
"(default):........{0}(default='G')\n"+
"(N) Number:.........{0:N}\n"+
"(P) Percent:.........{1:P}\n"+
"(R) Round-trip:.......{1:R}\n"+
"(X) Hexadecimal:.......{0:X}\n",
-123,-123.45f);
Console.WriteLine(s);
// Format the current date in various ways.
Console.WriteLine("Standard DateTime Format Specifiers");
s= String.Format(CultureInfo.InvariantCulture.DateTimeFormat,
"(d) Short date:.......{0:d}\n"+
"(D) Long date:........{0:D}\n"+
"(t) Short time:.......{0:t}\n"+
"(T) Long time:........{0:T}\n"+
"(f) Full date/short time:..{0:f}\n"+
"(F) Full date/long time:...{0:F}\n"+
"(g) General date/short time:.{0:g}\n"+
"(G) General date/long time:.{0:G}\n"+
"(default):........{0}(default='G')\n"+
"(M) Month:..........{0:M}\n"+
"(R) RFC1123:.........{0:R}\n"+
"(s) Sortable:........{0:s}\n"+
"(u) Universal sortable:...{0:u}(invariant)\n"+
"(U) Universal sortable:...{0:U}\n"+
"(Y) Year:..........{0:Y}\n",
thisDate);
Console.WriteLine(s);
// Format a Color enumeration value in various ways.
Console.WriteLine("Standard Enumeration Format Specifiers");
s= String.Format(CultureInfo.InvariantCulture,
"(G) General:.........{0:G}\n"+
"(default):........{0}(default='G')\n"+
"(F) Flags:..........{0:F}(flags or integer)\n"+
"(D) Decimal number:.....{0:D}\n"+
"(X) Hexadecimal:.......{0:X}\n",
Color.Green);
Console.WriteLine(s);
}
}
/*
This example displays the following output to the console:
Standard Numeric Format Specifiers
(C) Currency:........(123.00)
(D) Decimal:.........-123
(E) Scientific:.......-1.234500E+002
(F) Fixed point:.......-123.45
(G) General:.........-123
(default):........-123(default='G')
(N) Number:.........-123.00
(P) Percent:.........-12,345.00%
(R) Round-trip:.......-123.45
(X) Hexadecimal:....... FFFFFF85
Standard DateTime Format Specifiers
(d) Short date:....... 07/09/2007
(D) Long date:........ Monday, 09 July 2007
(t) Short time:....... 13:48
(T) Long time:........ 13:48:05
(f) Full date/short time:.. Monday, 09 July 2007 13:48
(F) Full date/long time:... Monday, 09 July 2007 13:48:05
(g) General date/short time:. 07/09/2007 13:48
(G) General date/long time:. 07/09/2007 13:48:05
(default):........ 07/09/2007 13:48:05(default='G')
(M) Month:.......... July 09
(R) RFC1123:......... Mon, 09 Jul 2007 13:48:05 GMT
(s) Sortable:........ 2007-07-09T13:48:05
(u) Universal sortable:... 2007-07-09 13:48:05Z(invariant)
(U) Universal sortable:... Monday, 09 July 2007 20:48:05
(Y) Year:.......... 2007 July
Standard Enumeration Format Specifiers
(G) General:......... Green
(default):........ Green(default='G')
(F) Flags:.......... Green(flags or integer)
(D) Decimal number:..... 3
(X) Hexadecimal:....... 00000003
*/
uiculture与culture区别
1.UICulture:取得/设置当前执行线程的用户接口。这个属性帮助运行时刻从一个特定的资源文件(我们将在后面看到)中加载资源字符串。这个属性能够使用中立文化,也可以是本地化。例如:
Thread.CurrentThread.CurrentUICulture= new CultureInfo("fr");
或:
Thread.CurrentThread.CurrentUICulture= new CultureInfo("fr-CA");
2.Culture:取得/设置地区特定的文化和货币、日期等的格式。这个属性需要语言也需要位置(本地化)。
Thread.CurrentThread.CurrentCulture= new CultureInfo("fr-A");//正确,因为我们已经给出了本地化
Thread.CurrentThread.CurrentCulture= new CultureInfo("fr");//错误,无法工作
C#CultureInfo 和CultureUIInfo的区别
CurrentCulture和CurrentUICulture
设置文化时必须区分用户界面的文化和数字及日期格式的文化。文化与线程相关,
有了这两种文化类型,就可以把两个文化设置应用于线程。用线程设置文化时,
Thread类提供了属性CurrentCulture和CurrentUICulture。属性CurrentCulture
用于设置与格式化和排序选项一起使用的文化,而属性CurrentUICulture用于设置用户界面的语言。
使用Windows控制面板中的“区域和语言”选项,用户就可以改变CurrentCulture的默认设置,
如图17-3所示。使用这个配置,还可以改变文化的默认数字、时间和日期格式。
CurrentUICulture不依赖于这个配置,而依赖于操作系统的语言。
这有一个例外:如果Windows XP或Windows 2000安装了多语言用户
界面(Muti-language User Interface, MUI),就可以用区域配置改变用户界面的语言,
这会影响CurrentUICulture属性。
好了,文章到此结束,希望可以帮助到大家。