Tag: cultureinfo

从当前的文化中获取货币?

有没有办法从应用程序文化设置中dynamic获取当前信息? 基本上如果用户已经把文化设定为美国,我想知道货币是美元,或者如果他们已经设置为英国,我想英镑等等。 这样,我可以在付款时将这些信息发送给PayPal

当string保证不会改变时,string比较是否真的可以根据文化而不同?

我从configuration文件读取encryption的凭据/连接string。 Resharper告诉我,“String.IndexOf(string)在这里是文化特定的”: if (line.Contains("host=")) { _host = line.Substring(line.IndexOf( "host=") + "host=".Length, line.Length – "host=".Length); …所以想要改变它: if (line.Contains("host=")) { _host = line.Substring(line.IndexOf("host=", System.StringComparison.Ordinal) + "host=".Length, line.Length – "host=".Length); 我正在阅读的值将永远是“host =”,无论应用程序可能部署在哪里。 添加这个“System.StringComparison.Ordinal”位是否真的明智? 更重要的是,它可以伤害任何东西(使用它)?

具有CultureInfo的DateTime.Now.DayOfWeek.ToString()

我有这个代码: DateTime.Now.DayOfWeek.ToString() 那给我一个星期的英文名字,我想有德文版本,这里怎么加CultureInfo来得到德文的那个星期的名字?

如何翻译CultureInfo的语言名称

我知道有三种方法可以获得CultureInfo对象的完整语言名称。 CultureInfo.DisplayName CultureInfo.NativeName CultureInfo.EnglishName DisplayName以已安装的.net语言提供名称。 NativeName以“CultureInfos”语言提供名称。 英文名字的英文名字(令人惊讶的是…) 所以对于CultureInfo de-DE,这给(在英文.net安装上) 德语 德语 德语 现在我的问题是:有没有办法用另一种语言来请求DE DE的语言名称? 例如,我想要荷兰语中的de-DE的语言名称(这将是“Duits”)。

将任何货币string转换为double

我需要在SQL服务器中存储多种货币。 我明白,SQL不会支持所有不同types的货币(除非我把它作为一个string存储,但我不想这样做)。 我的想法是将所有的价值从他们的货币格式转换为一个标准的双重存储,而不是。 然后在显示时根据文化信息重新格式化。 不过,我尝试做一些像例如 var cultureInfo = new System.Globalization.CultureInfo("en-US"); double plain = return Double.Parse("$20,000.00", cultureInfo); 这似乎没有工作,它总是抛出一个FormatException 。 即使删除货币符号,仅仅基于这个数字来做这件事也是一样的。 这只是我想要支持几乎任何types货币的一个例子。 有没有一个标准的方式来剥离货币,并获得双倍的价值?

为什么DateTime.ParseExact()不能用“M / d / yyyy”parsing“9/1/2009”

我有一个如下所示的string:“9/1/2009”。 我想将其转换为DateTime对象(使用C#)。 这工作: DateTime.Parse("9/1/2009", new CultureInfo("en-US")); 但我不明白为什么这不起作用: DateTime.ParseExact("9/1/2009", "M/d/yyyy", null); 在date(如“九月”)没有字,我知道具体的格式,所以我宁愿使用ParseExact(我不明白为什么需要CultureInfo)。 但我不断得到可怕的“string未被识别为有效的date时间”exception。 谢谢 稍微跟进一下。 这里有三种方法可以工作: DateTime.ParseExact("9/1/2009", "M'/'d'/'yyyy", null); DateTime.ParseExact("9/1/2009", "M/d/yyyy", CultureInfo.InvariantCulture); DateTime.Parse("9/1/2009", new CultureInfo("en-US")); 这里有3个不起作用的: DateTime.ParseExact("9/1/2009", "M/d/yyyy", CultureInfo.CurrentCulture); DateTime.ParseExact("9/1/2009", "M/d/yyyy", new CultureInfo("en-US")); DateTime.ParseExact("9/1/2009", "M/d/yyyy", null); 所以,Parse()适用于“en-US”,但不适用于ParseExact …意外?