我遇到了一个非常奇怪的问题,其中"月/日" https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx上指定的标准日期格式在本地计算机上的呈现方式与在我的Azure云服务和网站上呈现的格式不同。
在这种情况下呈现不同的文化是" en-AU"。对于2017-05-04
的日期,它应该呈现为4 May
,并且在我的本地计算机上它就是这样做的。在我们的网站(azure云服务)和我们的API(azure网站)上,它呈现为May 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中输出的值与本地输出的值不同。
答案 0 :(得分:1)
我已经使用过" en-AU"和" en-ZA"本地和Azure环境中的文化。遗憾的是,我没有遇到你在两个环境中提到的问题。
您获得的日期格式似乎是美国格式,这可能是因为您用来托管应用程序的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
祝你好运.. !!!