2016-08-17 15 views
0

我运行到这里的“月/日”作为https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx规定的标准日期格式不同的渲染我的本地机器上的一个很奇怪的问题比它在我的天蓝色不同云服务和网站。Azure的特定文化月/日格式化除localhost

在这种情况下,正在呈现不同的文化是“EN-AU”。对于2017-05-04日期应该呈现为4 May和我的本地机器上也正是这么做的。在我们的网站(天蓝云服务)和我们的API(天蓝色网站)上,它呈现为May 4。奇怪的是,如果我使用“短日期模式”,它将呈现为天蓝色/局部上的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

我在其他领域也看到同样的矛盾也是如此。例如,对于本地机器上的南非货币,我获得'R450.00',但是在Azure R 450.00中的Web服务器上(注意增加的空间)。这些更改非常微妙,但Azure中的库和我拥有的库中显然有些不同,我不知道如何跟踪它。 – Jorin

回答

1

我都用了“EN-AU”,并在本地和Azure的environments.Unfortunately“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 

好运.. !!!

+0

谢谢,但是它仍然在服务器上提供不同于“M”和“C”风格的本地输出。 – Jorin