我有一个很好的函数设置,用于按照 前导零日期格式 C#格式化日期
但事实证明,在我们的农场中,我们有一些刀片在英国地区运行,一些在美国地区运行,因此取决于它崩溃的情况。
那么我所追求的是如何测试当前的服务器语言环境?
就像是...
if(Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName == "GB"){
...
}
else
{
..otherstatement
}
塔
我有一个很好的函数设置,用于按照 前导零日期格式 C#格式化日期
但事实证明,在我们的农场中,我们有一些刀片在英国地区运行,一些在美国地区运行,因此取决于它崩溃的情况。
那么我所追求的是如何测试当前的服务器语言环境?
就像是...
if(Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName == "GB"){
...
}
else
{
..otherstatement
}
塔
Date now = DateTime.Now;
CultureInfo ci = Thread.CurrentThread.CurrentCulture;
Console.WriteLine(now.ToString("d", ci));
您应该将所需的文化传递给所有格式化函数(通常是 InvariantCulture)。
或者,您可以像这样在页面上设置文化。该代码也可以进入 asax.cs 文件中的 Application BeginRequest 覆盖,以影响所有页面。
通常我们使用 UTC而不是特定于语言环境的代码。
据我所知,测试 CurrentCulture 是实现您所要求的唯一方法。但是,我强烈建议将日期保留为 DateTime,直到它们出现在用户界面中,并且在依赖于日期格式的服务器功能中没有 if 语句。
我通常会尝试在尽可能靠近用户的地方应用日期格式。