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

标签 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 网站)上,它呈现为 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/

相关文章:

c# - 为什么 const int 隐式转换为字节,而变量 int 却没有?

Azure AD B2C 注销不会使 token 失效

azure - 在 Azure CLI 中获取 Azure AD 组的所有用户 - 100 限制问题

c# - 如何从字符串内容中删除一些特殊的单词?

.net - .Net 字符串格式化程序中的可变小数位?

xaml - StringFormat 中的 Xamarin XAML 多语言

c# - 缓存农场,读取池

c# - 引发异常或返回错误 - 更好的方法是什么?

c# - 将word文档嵌入到另一个没有图标

node.js - 设置私有(private) NPM feed 并发布包