これは、ローカライズされたバージョンが必要な同様の状況に対して私が思いついた解決策です01/29
:
Regex.Replace(c.DateTimeFormat.ShortDatePattern, @"(yy(yy)?[/\.\- ]|[/\.\- ]yy(yy)?)", "")
これがすべてのカルチャのフォーマット出力であるため、それが機能するかどうかを確認できます。
CultureInfo.GetCultures(CultureTypes.AllCultures)
.Select(c => new {
c.Name,
c.DateTimeFormat.MonthDayPattern,
c.DateTimeFormat.ShortDatePattern,
DayMonth1 = Regex.Replace(c.DateTimeFormat.ShortDatePattern, @"[/\.\- ]?yy[/\.\- ]?", ""),
DayMonth2 = Regex.Replace(c.DateTimeFormat.ShortDatePattern, @"(yyyy[/\.\- ]|[/\.\- ]yyyy|yy[/\.\- ]|[/\.\- ]yy)", ""),
DayMonth3 = Regex.Replace(c.DateTimeFormat.ShortDatePattern, @"(yy(yy)?[/\.\- ]|[/\.\- ]yy(yy)?)", "")
})
.OrderBy(x => x.Name)
.Dump();
置換により、いくつかのカルチャ(具体的には「bg」)のDateMonth1
余分なパディング文字が削除されます。