我有一个很好的功能设置,用于格式化日期 Leading Zero Date Format C#
但事实证明,在我们的农场,我们有一些刀片运行在英国语言环境中,有些刀片运行在美国语言环境中,这取决于它崩溃的程度。
那么我所追求的是如何测试当前的服务器区域设置?
像...一样的东西。
if(Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName == "GB"){
...
}
else
{
..otherstatement
}
TA
答案 0 :(得分:4)
Date now = DateTime.Now;
CultureInfo ci = Thread.CurrentThread.CurrentCulture;
Console.WriteLine(now.ToString("d", ci));
答案 1 :(得分:2)
您应该将所需的文化传递给所有格式化函数(通常是InvariantCulture)。
或者,您可以在页面like so上设置文化。该代码也可以放在asax.cs文件中的Application BeginRequest覆盖中,以影响所有页面。
答案 2 :(得分:1)
通常我们go with UTC而不是特定于语言环境的代码。
答案 3 :(得分:1)
据我所知,测试CurrentCulture是达到你要求的唯一方法。但是,我强烈建议将日期保留为DateTime,直到它们在用户界面中显示,而服务器功能中的if语句不依赖于日期格式。
我通常会尝试将日期格式设置为尽可能靠近用户。