【问题标题】:Change date picker text: capitalize month更改日期选择器文本:大写月份
【发布时间】:2012-08-15 05:30:10
【问题描述】:

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

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

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

显示:

大教堂 19/前/2012

我想拥有:

大教堂 19/Ago/2012

我该如何改变呢?

【问题讨论】:

    标签: c# datepicker


    【解决方案1】:

    指定AbbreviatedMonthGenitiveNamesAbbreviatedMonthNamesShortDatePattern 可以解决问题。

    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"},
    

    【讨论】:

    • Doh.. 它说:Sun 18/Ago/2012 不是Dom 19/Ago/2012 我也必须添加AbbreviatedDayNames
    【解决方案2】:

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

    但请注意,CultureAndRegionInfoBuilder 位于 sysglobl.dll 程序集 which you'll need to import 中。

    【讨论】:

    • 不需要(不能)使用该类,而是指定AbbreviatedMonthNames 属性
    猜你喜欢
    • 1970-01-01
    • 2017-09-03
    • 1970-01-01
    • 2015-03-28
    • 2018-04-03
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    相关资源
    最近更新 更多