Tag: cultureinfo

Double.Parse – 国际化问题

这真让我抓狂。 我在ASP.NET 2.0 WebForm页面中有以下字符串 string s = “0.009”; 很简单。 现在,如果我的文化是西class牙语 – 这是“es-ES” – 我尝试将字符串转换为Double,我会执行以下操作: double d = Double.Parse(s, new CultureInfo(“es-ES”)); 我期待的是0,009。 相反,我得到9.我明白.NET认为它是千分隔符,在en-US中是一个逗号,但不应该把我传递给parse方法的文化信息并应用正确的格式转换? 如果我做 double d = 0.009D; string formatted = d.ToString(new CultureInfo(“es-ES”)); 格式化现在是0,009。 任何人?

datetime.tostring月和日语言

我有一个具有不同国籍的人的电子邮件地址列表(对于我拥有iso代码的每个人) 当我向所有这些人发送电子邮件时,在邮件文本中我需要将datetime字段转换为在其特定文化中格式化的字符串。 为此,我正在做 CultureInfo ci = new CultureInfo(ISO); myStringDate = myDate.ToString(ci.DateTimeFormat.ShortDatePattern); 并且工作完美,但如果我使用LongDatePattern而不是短,用于显示日期,如“2010年6月13日星期一”,它的工作正常,除了日期和月份的语言。 如果人的文化是它 – 我需要显示“Martedi”和“Giugno”而不是“星期一”和“六月” 如何在不改变当前UI文化的情况下做到这一点?

如何将“12,4”转换为十进制en-Us文化

我在挪威文化中的数据库的字符串列中存储了一个十进制值(“133,3”)。 之后,用户将区域设置更改为english-Us。 当我使用CultureInfo.InvariantCulture将“133,3”转换为十进制时,获取无效值或错误。 在C#应用程序中有没有最好的方法来处理这种情况? 问候,阿南德

如何在用户更改系统文化时接收事件

当我的应用程序使用指定的文化运行时。 不要关闭应用程序,用户更改系统的文化,例如:从“。”更改数字小数点分隔符。 至 ”,”。 如何我的应用程序可以捕获此事件。 谢谢。 注意: C#2.0,Windows窗体。

如何显示特定于文化的原生数字而不是阿拉伯数字?

我想将数值转换为字符串,显示特定于文化的数字。 例如,阿富汗使用的Dari语言(文化名称“prs-AF”)使用东方阿拉伯数字而不是大多数西方文化中使用的阿拉伯数字 ( 0,1,2,3,4,5,6,7,8,9 )。 在检查Framework内置的CultureInfo类时,它会列出正确的本机数字(从LinqPad的输出中截取): CultureInfo.CreateSpecificCulture(“prs-AF”).NumberFormat.NativeDigits 但是,当尝试将数字转换为字符串以在该文化中显示时,我没有获得原始数字: var number = 123.5; var culture = CultureInfo.CreateSpecificCulture(“prs-AF”); Thread.CurrentThread.CurrentUICulture = culture; Thread.CurrentThread.CurrentCulture = culture; var text = number.ToString(culture); Console.WriteLine(text); 谁能告诉我如何显示原生数字?

DateTime和CultureInfo

我的代码中有这个: var date1 = DateTime.ParseExact(date, “dd.MM.yyyy HH:mm:ss”, System.Globalization.CultureInfo.InvariantCulture); 当我现在的文化是荷兰语( nl-NL )而不是5月1日,我得到1月5日。 我认为错误在第二个参数dd.MM.yyyy HH:mm:ss 。 有没有办法使用CultureInfo类来解决这个问题?

如何在C#中以波斯语格式打印DateTime

在波斯语中打印c#DateTime最简单的方法是什么? 目前我正在使用: static public string PersianDateString(DateTime d) { CultureInfo faIR = new CultureInfo(“fa-IR”); faIR.DateTimeFormat.Calendar = new PersianCalendar(); return d.ToString(“yyyy/MM/dd”, faIR); } 这引发了exception 不是给定文化的有效日历

如何在C#中枚举LOCALIZED字母?

首先,这不是重复: 枚举字母表的最快方法 因为我需要获得ARBITRARY(变量)LANGUAGE字母表的所有字符,以及正确的排序顺序。 如果不知道每种可能的文化/语言的字母,我该怎么做? 例如,System.Gobalization.Cultureinfo具有关于日期格式,排序方法和代码页信息的信息。 但不是字母表本身的信息。 Forthermore’A’到’Z’排序迭代不会这样做,因为德语例如有ÄÖÜ这样的字符,它们在代码页编号中位于’Z’之后,但在排序后跟随你。 我可以以某种方式使用代码页来获取所有字符,并以某种方式对它们进行排序吗? “所有字符”是指所有字母,包括数字,但不是标点符号。 并且可能只有较高的XOR小写。

对WCF服务的异步调用不会保留CurrentCulture

根据这个问题的答案async/await call应该保留CurrentCulture。 就我而言,当我调用自己的异步方法时,将保留CurrentCulture。 但是,如果我调用某种WCF服务方法,则不会保留CurrentCulture,而是将其更改为看起来像服务器默认线程文化的东西。 我查看了调用托管线程的内容。 它发生在每个代码行都在一个托管线程上执行(ManagedThreadId保持不变)。 在调用我自己的异步方法后,CultureInfo保持不变。 但是当我调用WCF的方法时,ManagedTrheadId保持不变,但CurrentCulture已更改。 简化的代码如下所示:: private async Task Test() { // Befoe this code Thread.CurrentThread.CurrentCulture is “ru-RU”, ie the default server’s culture // Here we change current thread’s culture to some desired culture, eg hu-HU Thread.CurrentThread.CurrentCulture = new CultureInfo(“hu-HU”); var intres = await GetIntAsync(); // after with await Thread.CurrentThread.CurrentCulture is still […]

用英语等价物替换德语字符(变音符号,重音符号)

用英语等价物替换德语字符(变音符号,重音符号) 我需要从各个文本字段中删除任何德语特定字符,以便处理到另一个不接受它们有效的系统。 所以我所知道的人物是: ßäöüÄÖÜ 目前我有一种手动方式来替换它们: myGermanString.Replace(“ä”,”a”).Replace(“ö”,”o”).Replace(“ü”,”u”)….. 但我希望有一种更简单/更有效的方法。 由于我每次运行都会在数千个字符串上执行此操作,其中99%不会包含这些字符。 也许是一种涉及某种CultureInfo的方法? (例如,根据MS,以下返回的字符串是相等的 String.Compare(“Straße”, “Strasse”, StringComparison.CurrentCulture); 所以必须存在某种转换表?)