【问题标题】:uwp CalendarDatePicker set date formatuwp CalendarDatePicker 设置日期格式
【发布时间】:2016-04-01 11:16:26
【问题描述】:

出于全球化目的,我正在尝试为 CalendarDatePicker 设置日期格式。我试过这个:

endDate = (FindName("cdpEnd") as CalendarDatePicker);
endDate.DateFormat = CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern;
endDate.Date = workObject.EndCal;

但它给了我以下例外:

System.ArgumentException: The parameter is incorrect.

formatTemplate
   at Windows.UI.Xaml.Controls.CalendarDatePicker.put_DateFormat(String value)
   at App1.PageWorkObject.rootGrid_Loaded(Object sender, RoutedEventArgs e)

我检查了我设置的值,对我来说它看起来很正常:"M/d/yyyy"

我做错了什么?

【问题讨论】:

    标签: win-universal-app


    【解决方案1】:

    当您使用CalendarDatePicker 时,它的TextBox 部分的字符串内容由DateTimeFormatter 创建。

    "M/d/yyyy"看似正常,但是

    重要您不能随意组合组件并一定要获得有效的模板。唯一有效的模板是由提供的语法定义的模板。

    如果你阅读参考DateTimeFormatter类,你会发现没有像"M/d/yyyy"这样的格式,对于像"M/d/yyyy"这样的格式,我认为应该是这样的:

    endDate.DateFormat = "{month.integer}‎/‎{day.integer}‎/‎{year.full}";
    

    【讨论】:

    • 有没有办法为所有全球化解决这个问题?即欧洲?
    • @RobinDijkhof,我觉得可以通过数据绑定来绑定CalendarDatePickerDateFormat属性,然后根据地域选择不同的格式。
    猜你喜欢
    • 2018-07-31
    • 1970-01-01
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多