我遇到了一个非常奇怪的问题,其中 https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx 上指定的“月/日”标准日期格式在我的本地计算机上的呈现方式与在我的 Azure 云服务和网站上的呈现方式不同。
本例中呈现不同的区域性是“en-AU”。对于 2017-05-04
日期,它应该呈现为 4 May
并且在我的本地计算机上它正是这样做的。在我们的网站(azure 云服务)和 API(azure 网站)上,它呈现为 5 月 4 日
。奇怪的是,如果我使用“短日期模式”,它会在 azure/local 上呈现为 04/05/2017
。所以这似乎只特定于“月/日”模式。
我尝试过设置
var culture = new CultureInfo("en-AU");
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
格式化代码是
string.Format(new CultureInfo("en-AU"), "Until {0:M} {0:yyyy}", endDate);
我想知道 Azure 中某些区域性定义的版本是否可能与本地计算机上的版本不同?据我所知,它们都运行 .net 4.5。我在代码中添加了日志语句,以便可以确认代码运行行上的区域性设置正确,但由于某种原因,它只是在 Azure 中输出与本地不同的值。
最佳答案
我在本地和 Azure 环境中都使用了“en-AU”和“en-ZA”文化。不幸的是,我在这两种环境中都没有遇到您在问题中提到的问题。
您获得的日期格式似乎是美国格式,这可能是因为您用来托管应用程序的 azure 数据中心位于美国,并且您的日期已格式化为该文化。无论如何,给尝试将日期格式化为:
var currentCulture = new CultureInfo("en-AU");
var formattedDate = DateTime.Now.ToString("G",currentCulture);
对于南非文化,请尝试以下操作:
var currentCulture = new CultureInfo("en-ZA");
var formattedCurrency = currency.ToString("C", currentCulture);
//currency = 100000 then formattedCurrency => R 100 000,00
祝你好运..!!!
关于c# - Azure 文化特定的月/日格式与 localhost 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39006569/