5

我想通过大写月份的第一个字母来更改日期选择器。

目前我在线程中使用设置的文化信息并在那里指定格式,但对于我的文化来说,月份总是小写:

CultureInfo ci = new CultureInfo("es-MX");
ci.DateTimeFormat.ShortDatePattern = "ddd dd/MMM/yyyy";
Thread.CurrentThread.CurrentCulture = ci;

显示:

大教堂 19/前/2012

我想拥有:

大教堂 19/Ago/2012

我该如何改变呢?

4

2 回答 2

5

指定AbbreviatedMonthGenitiveNames,AbbreviatedMonthNames以及ShortDatePattern做的伎俩。

Thread.CurrentThread.CurrentCulture = new CultureInfo("es-MX")
{
    DateTimeFormat = new DateTimeFormatInfo
    {
        AbbreviatedMonthGenitiveNames = new string[] { "Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic", string.Empty },
        AbbreviatedMonthNames         = new string[] { "Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic", string.Empty },
        ShortDatePattern = "ddd dd/MMM/yyyy"
    }
};

产量:

在此处输入图像描述

编辑:

我必须补充:

...
AbbreviatedDayNames = new string[] { "Dom",  "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"},

于 2012-08-19T18:14:14.837 回答
2

您可能可以使用CultureAndRegionInfoBuilder该类来复制现有的文化并仅更改月份名称。然后您随后在您的应用程序中使用该文化而不是CultureInfo您现在使用的文化。

但是请注意,这CultureAndRegionInfoBuilder是在sysglobl.dll程序集中,您需要导入.

于 2012-08-19T17:16:33.443 回答