C# 不同Microsoft azure部署环境中的不同日期格式
我在Windows Azure中有两个环境(部署)。 在一个环境中(比如D env)语句C# 不同Microsoft azure部署环境中的不同日期格式,c#,datetime,azure,cultureinfo,regional-settings,C#,Datetime,Azure,Cultureinfo,Regional Settings,我在Windows Azure中有两个环境(部署)。 在一个环境中(比如D env)语句 DateTime.Now.ToString("dd/mm/yyyy") 返回“08-01-2013” 在另一个环境中(比如E env),它返回“08/01/2013” 我不明白为什么会发生这种情况。我认为您的环境和其他设置是不同的 您的D环境使用日期附加设置使用-,您的E环境使用/在环境E中将日期格式更改为dd.MM.yyyy 对于Windows 7,请按照控制面板-->语言和地区-->更改日期、时间和数
DateTime.Now.ToString("dd/mm/yyyy")
返回“08-01-2013”
在另一个环境中(比如E env),它返回“08/01/2013”
我不明白为什么会发生这种情况。我认为您的环境和其他设置是不同的 您的D环境使用日期附加设置使用
-
,您的E环境使用/
在环境E中将日期格式更改为dd.MM.yyyy
对于Windows 7,请按照控制面板-->语言和地区-->更改日期、时间和数字格式-->其他设置-->日期
如果希望在代码部分中进行一些更改,可以在代码中使用属性
不变的文化是文化不敏感的;它与
英语,但不适用于任何国家/地区。您可以指定
通过在调用中使用空字符串(“”),按名称固定区域性
CultureInfo实例化方法。CultureInfo.InvariantCulture也
检索不变区域性的实例。它可以用于
几乎任何System.Globalization命名空间中需要
一种文化
假设您想为这两种环境使用法语CultureInfo
CultureInfo frFr = new CultureInfo("fr-FR");
string s = DateTime.Now.ToString("dd/mm/yyyy", frFr);
您正在使用
ToString
重载,该重载使用当前区域性的设置。格式字符串中的斜杠字符被视为当前区域性的日期字段分隔符的替换字符
如果要使用显式日期格式字符串,请同时使用显式格式提供程序。在这种情况下,我建议使用InvariantCulture
中的格式;e、 g
using System.Globalization;
...
var x = DateTime.Now.ToString("dd/mm/yyyy", CultureInfo.InvariantCulture);
还可以通过将格式字符串括在单引号中,将其修改为使用显式斜杠。这将阻止解析器尝试查找区域性替换字符:
var x = DateTime.Now.ToString("dd'/'mm'/'yyyy");
在我的上下文中,这种方法的问题是DateTime.Now.ToString(“dd/mm/yyyy”)被大量使用。因此,我不想在E env(这是我们的目标环境)中运行时到处更改。我可以使用Windows Azure中的某些配置文件在UI中执行您正在执行的操作吗?@SujithKp我从未使用Windows Azure,但Azure中有任何配置选项吗?查看asp.net版本