.NET System.Windows.Forms DateTimePicker 自定义格式不正确

.NET System.Windows.Forms DateTimePicker CustomFormat incorrect

代码如下:

   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",其中每个月和日 左填充 space ,而控制台输出显示预期值 "832016"

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

Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern

DateTimePicker 控件正在努力提供帮助,让您可以使用键盘而不是下拉菜单手动输入日期。如果数字显示时没有空格,则日期将不明确。例如,这是指什么日期:

1232016

December 3, 2016还是January 23, 2016?所以空格是必须的。最好的办法是给日值和月值一个前导零:

dtpStart.CustomFormat = "MMddyyyy";