.NET System.Windows.Forms DateTimePicker CustomFormat不正确

时间:2016-08-03 20:17:31

标签: c# .net winforms format datetimepicker

以下是代码:

   DateTime dt = new DateTime( 2016, 8, 3);
   dtpStart.Format = DateTimePickerFormat.Custom;
   dtpStart.CustomFormat = "Mdyyyy"; //format;
   dtpStart.Value = dt;
   string s = String.Format( "{0:Mdyyyy}", dt );
   System.Console.Write( s );

在DateTimePicker(dtpStart)中,我看到" 8 32016" ,其中每个左侧填充空格的月份和日期,而控制台输出显示预期值" 832016" 即可。

问题在于,无论我们提供何种格式,我们都会看到月份和日期的意外填充,例如:

Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern

1 个答案:

答案 0 :(得分:3)

DateTimePicker控件正试图提供帮助,让您使用键盘而不是下拉列表手动输入日期。如果数字显示没有空格,则日期将不明确。例如,这指的是什么日期:

1232016

December 3, 2016还是January 23, 2016?所以空间是必需的。您最好的选择是将日期和月份值设为前导零:

dtpStart.CustomFormat = "MMddyyyy";