【发布时间】:2019-12-26 09:47:22
【问题描述】:
我正在运行一个包含 DateTime.Now.ToString() 的 .NET Core 应用程序。在我的 PC 上显示欧洲日期格式 (dd/mm/yy) 但在位于美国的 Linux VM 上运行时显示美国日期格式 (mm/dd/yy),尽管 VM 上的时区是 GMT。
如何让它只显示欧洲日期格式?
我知道我可以在程序中手动格式化,但有没有办法在 Linux 系统上全局执行此操作?
【问题讨论】:
我正在运行一个包含 DateTime.Now.ToString() 的 .NET Core 应用程序。在我的 PC 上显示欧洲日期格式 (dd/mm/yy) 但在位于美国的 Linux VM 上运行时显示美国日期格式 (mm/dd/yy),尽管 VM 上的时区是 GMT。
如何让它只显示欧洲日期格式?
我知道我可以在程序中手动格式化,但有没有办法在 Linux 系统上全局执行此操作?
【问题讨论】:
要为所有应用程序线程设置文化,您可以使用CultureInfo.DefaultThreadCurrentCulture 属性,就像这样
if (Thread.CurrentThread.CurrentCulture.Name == "en-US")
{
culture = CultureInfo.CreateSpecificCulture("...");
CultureInfo.DefaultThreadCurrentCulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;
}
您正在检查当前文化是否为en-US,并将默认文化更新为任何欧盟特定文化,例如de-DE 或fr-FR。也可以参考MSDN了解详情
【讨论】:
您可以使用以下代码:
DateTime.Now.ToString("dd/MM/yy")
它应该工作。
欲了解更多信息:https://www.c-sharpcorner.com/blogs/date-and-time-format-in-c-sharp-programming1
【讨论】: