DateTime选择器C#格式

我有一个DateTime选择器来添加到列表的到达时间,我有2个问题:

  1. 我怎样才能让它显示12-Jan-2012而不是12-Jan-201212/01/12
  2. 我怎样才能让它显示日期之后的时间而不是当前时间,因为这就是显示atm的内容。

我目前的代码不是很先进,只是:

 theVisit.ArrivalTime = DateTimePicker1.Value 

这样的东西会显示日期和时间:

 DateTimePicker1.Value.ToString("d-MMM-yyyy hh:mm:ss"); 

要覆盖默认的DateTimePicker设置,您可以执行以下操作:

 DateTimePicker1.Format = DateTimePickerFormat.Custom; DateTimePicker1.CustomFormat = "d-MMM-yyyy hh:mm:ss"; 

您可以通过修改格式字符串来显示不同的时间,例如:

 DateTimePicker1.CustomFormat = "d-MMM-yyyy 12:00:00"; 

甚至

 DateTime otherTime = DateTime.Now; DateTimePicker1.CustomFormat = "d-MMM-yyyy " + otherTime.ToString("hh:mm:ss"); 

要在选择器中以该格式显示,请在下面设置属性

 dateTimePicker1.Format = DateTimePickerFormat.Custom; dateTimePicker1.CustomFormat = "dd-MMM-yyyy hh:mm:ss"; 

您正在寻找DateTime格式字符串。 在MSDN上有一篇很棒的文章。 有两种类型:

  1. 标准日期时间格式
  2. 自定义日期时间格式

您可以使用这些来构建日期时间以查看您希望的结果。 对于您的示例,您将使用:

 DateTimePicker1.Value.ToString("dd-MMM-yyyy hh:mm:ss") 

首先,要改变DateTimePicker显示DateTimes的方式:

 DateTimePicker1.CustomFormat = "d-MMM-yyyy hh:mm:ss"; DateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Custom; 

你的代码:

 theVisit.ArrivalTime = DateTimePicker1.Value; 

不会改变,因为DateTimePicker1.Value没有任何不同,它只是根据你的格式显示。

如果希望控件显示特定时间(而不是当前时间),则必须为控件提供该值:

 DateTimePicker1.Value = new DateTime(2012, 12, 21, 23, 59, 59); 

否则,它将显示表单创建时的当前时间。

您可以像这样检查datetimepicker以检查它是否为空。

 if(DatTimePicker1.Text.Equals(" ")) { MessageBox.Show("DateTimePicker is empty"); }