Azure文化特定的月/日格式与localhost不同

时间:2016-08-17 21:28:46

标签: c# azure string-formatting culture

我遇到了一个非常奇怪的问题,其中"月/日" 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中输出的值与本地输出的值不同。

1 个答案:

答案 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
祝你好运.. !!!

相关问题