问题标签 [invariantculture]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 对于不变的日期,强制 DateTime.Parse 失败
我会简短地开始,然后在最后给出细节。考虑以下代码:
问题是是否有任何可能的值cultureToTest
会导致DateTime.Parse
调用抛出异常或返回错误的值?
语境:
这是一组单元测试。有一段代码在DateTime.Parse
没有指定文化的情况下调用。我担心的是,当此代码在 Invariant 或 en-US 文化中传递一个日期时,该代码可能会在某些文化中失败。我提出的解决方案是更改要使用的代码
在这些情况下。
为了对更改进行单元测试,我需要使用会使原始DateTime.Parse(string)
代码失败的文化来调用新代码,然后显示更改后的代码将成功。
问题是我还没有找到一种文化可以为我做到这一点。我将尝试制造一个,但我想我会先问更一般的问题。
c# - .ToString() 中的 CultureInfo.InvariantCulture
我目前正在修复 FxCop 问题,因此在使用ToString()
.
目前在我的代码中,我们没有将任何内容作为 IFormatProvider 传递,因此我阅读了一些 msdn 文章,说当您不为cultureinfo 传递任何值时,它将分配一个默认值,当您将 CultureInfo 指定为 InvariantCulture 时,它将独立于任何文化。
我的问题是,“默认值和 CultureInfo.InvariantCulture 是否相同?我可以将所有代码从默认值替换为 InvariantCulture 吗?”
前任 :
第二行和第三行是等价的吗?
user-interface - IIS 如何确定错误消息语言?
我在 IIS 7.5 上运行一个 ASP.NET 网站,其中文化和 UI 文化在设置中设置为不变文化。基于客户端的文化设置为 false。
IIS 服务器在德语 Windows Server 2008 R2 上运行,我的机器运行英语 Windows 8.1,Firefox 设置为首先接受 en-us 内容。
当应用程序生成错误消息时,此消息为德语。我可以通过更改 IIS 上的文化设置来强制它使用英语。无论我是否打开或关闭基于客户的文化,它始终是德语。
在对类似问题的回答中,有人建议不变文化基于英语。因此,我假设错误消息以英语输出。
IIS 如何确定要输出的错误消息的语言?
c# - 序列化\反序列化 - 我应该使用不变的文化信息还是保留当前的文化信息
在我一头扎进代码之前,我来征求一些建议。
在我正在处理的应用程序上,我遇到了“,”(逗号)与“。” (点)小数分隔符的差异。
当我坚持到一个文件,更改区域设置并重新打开所述文件时,我遇到了反序列化异常。
我的问题如下。
如果我在发生序列化/反序列化的任何地方都使用不变的文化信息,我会再次遇到这个问题吗?在我看来,这应该适用于任何地方,即使区域设置发生变化。我的假设是否正确?
另一个不理想的想法是将当前文化信息与保存的文件关联\持久化。不太好做。
我欢迎任何关于这个问题的建议和见解。如果有任何不清楚的地方,请随时发表评论。
提前感谢您的所有帮助!!
.net - StringComparer.OrdinalignoreCase 和 StringComparer.InvariantCultureIgnoreCase 的关系
我试图在使用StringComparer.OrdinalignoreCase
and时获取字符串比较结果之间的关系StringComparer.InvariantCultureIgnoreCase
。更准确地说,我想知道以下四种说法中哪一种是正确的:
a == b using StringComparer.OrdinalIgnoreCase
, 然后a == b using StringComparer.InvariantCultureIgnoreCase
a != b using StringComparer.OrdinalIgnoreCase
, 然后a != b using StringComparer.InvariantCultureIgnoreCase
a == b using StringComparer.InvariantCultureIgnoreCase
, 然后a == b using StringComparer.OrdinalIgnoreCase
a != b using StringComparer.InvariantCultureIgnoreCase
, 然后a != b using StringComparer.OrdinalIgnoreCase
到目前为止,我知道第 3 条陈述是不正确的,因为这个问题中的评论的例子a = STRASSE
和评论。b = Straße
理想情况下,我想解释为什么一个陈述是正确的,或者一个不正确的例子。
c# - 这是安全的,还是只在英语国家有效?
我有这个代码:
...但我想知道它是否仍然适用于德语地区(“Montag”)或西班牙语地区(“Lunes”)。如果不是 - 如果寻找“星期一”是有问题的 - 我怎么能得到一个代表星期几的 int 。即使在这种情况下,0 总是星期天,或者有时是星期一(甚至是其他东西)?
java - 如何在 Java 中进行从 int 到 String 的文化不变转换?
为了在 C# 中将整数转换为字符串(具有不变的文化),我们执行如下操作:
在 Java 中是否存在与上述操作等效的操作,或者Integer.toString(int)
本质上是否进行文化不变转换?
c# - 解析带小数点的值
我有一个来自数据库的金额的字符串值。我系统上的当地文化是葡萄牙语(pt-br)。因此,具有小数值的金额被读取为,例如:3,4 表示 3.4。我需要以显示 3.4 的方式解析它,但无论我尝试什么,我都会得到 34。我已经在每个地方搜索了解决方案并尝试实现以下内容,但徒劳无功。
//这里的row[item.columnName]是我循环的DataTable的行
解决方案1:
解决方案2:
它们似乎都不起作用。有人可以建议我是否有其他方法可以实现这一目标?
编辑:
原来我从数据库中得到的值是十进制类型的,所以我将我的 LOC 更改为以下。
它似乎仍然不起作用,我只是不知道哪里出错了。我在DotNetFiddle上尝试了同样的事情 ,它工作得非常好。下面是我尝试过的代码。
我得到的结果和预期的一样是 1.35。我究竟做错了什么?
c# - C#以“DDMMYYYY”格式解析日期?
我正在尝试DDMMYYYY
使用以下代码解析格式格式的字符串日期,但即使16062001
是格式中的有效日期,它也会返回 false DDMMYYYY
。
c# - 使用其他文化时错误的 DateTime 解析
我在多语言站点中使用 EF 将结果从 SP 映射到对象。
我发现当文化发生变化时映射日期存在问题。
16/12/2015 09:06:15
更具体地说,我得到与或相同的日期12/16/2015 09:06:15
,具体取决于用户文化。
我知道两种解决方案:
- 将日期作为字符串获取并使用
CultureInfo.InvariantCulture
. CultureInfo.CultureInvariant
在调用存储库方法之前切换文化。
也许还有另一种选择:
- 我看到我们同时更改了:
Thread.CurrentThread.CurrentUICulture
和Thread.CurrentThread.CurrentCulture
用户的语言环境,但我认为我们应该只切换 UI 之一。但我不确定如果我改变它会破坏什么......
有没有其他选择,比如在 EF 上下文中设置文化?
更新:在进行查询之前
更改Thread.CurrentThread.CurrentUICulture
andThread.CurrentThread.CurrentCulture
似乎也无济于事。这令人困惑......也许 EF 在更早的时候缓存了文化?