是否有可能在没有年份和月份的情况下以国际化的数字表示形式格式化 DateTime?
例如new DateTime(2018, 8, 10)(今天)
一方面,我们有“d”表示 10.08.2018
(德语)或 2018/08/10
(日本人)。
另一方面,我们有“M”给我们 10. August
(德语)或 August 10
(美国英语)
但我想要的是10.08.
(德语), 08/10
(日语), 8/10
(美国英语),10/08
(英式英语)
最佳答案
也许你可以拿 ShortDatePattern
来自 DateTimeFormatInfo
去掉yyyy?
您必须要有一点创意才能用它删除分隔符。
A 替换链
.Replace(DateFormatInfo.DateSeparator+"yyyy")
.Replace("yyyy"+DateFormatInfo.DateSeparator)
正则表达式可能会起作用
^y+[^0-9A-Za-z]+|[^0-9A-Za-z]+y+$
string[] cultures = { "en-US", "ja-JP", "fr-FR" };
DateTime date1 = new DateTime(2011, 5, 1);
Console.WriteLine(" {0,7} {1,19} {2,10}\n", "CULTURE", "PROPERTY VALUE", "DATE");
foreach (var culture in cultures) {
DateTimeFormatInfo dtfi = CultureInfo.CreateSpecificCulture(culture).DateTimeFormat;
Console.WriteLine(" {0,7} {1,19} {2,10}", culture,
dtfi.ShortDatePattern,
date1.ToString("d", dtfi));
}
CULTURE PROPERTY VALUE
en-US M/d/yyyy
ja-JP yyyy/MM/dd
fr-FR dd/MM/yyyy
来自:https://docs.microsoft.com/en-us/dotnet/api/system.globalization.datetimeformatinfo.shortdatepattern?view=netframework-4.7.2
关于C# 格式 DateTime 没有年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51786699/