我可以更改特定区域性的 DateTime 的标准输出格式吗?例子:
class Program
{
static void Main(string[] args)
{
PrintCultureDateTime("ca-ES");
PrintCultureDateTime("es-ES");
PrintCultureDateTime("en-US");
PrintCultureDateTime("en-GB");
PrintCultureDateTime("pt-PT");
}
public static void PrintCultureDateTime(string culture)
{
string result = new DateTime(2017, 10, 1).ToString("d",
CultureInfo.GetCultureInfo(culture));
Console.WriteLine(string.Format("{0}: {1}", culture, result));
}
}
Output:
ca-ES: 1/10/2017
es-ES: 01/10/2017
en-US: 10/1/2017
en-GB: 01/10/2017
pt-PT: 01/10/2017
我想要的是使用标准“d”格式或其他标准格式使用两位数字表示日期和月份,以便修复 DateTime strings 的大小。像这样的输出:
ca-ES: 01/10/2017
es-ES: 01/10/2017
en-US: 10/01/2017
en-GB: 01/10/2017
pt-PT: 01/10/2017
您可以使用DateTimeFormatInfo.ShortDatePattern https://learn.microsoft.com/en-gb/dotnet/api/system.globalization.datetimeformatinfo.shortdatepattern获取模式,然后替换d
with dd
如果你真的想的话。您可能需要考虑极端情况,例如转义或引用d
模式虽然 - 以及显然没有取代dd
with dddd
。 (请注意,系统区域性中的格式信息将是只读的;克隆该区域性以获得具有读/写格式信息的区域性。)当然,您也会在几个月内执行相同的操作。您甚至可能需要更改年份部分。
我不清楚这样做是否是一个好主意 - 当您更改格式时,它不再是真正的“文化的标准短日期格式”。
即使在这一切之后,也不能保证所有文化的长度都相同。没有什么可以阻止文化使用短日期格式"'Year:' yyyy '; Month: ' MM '; 'Day: 'dd"
。这将是非常不寻常的,但并非无效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)