日期时间选择器 C# 格式化

4

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

  1. 如何使其显示为日期格式例如12-Jan-2012而不是12/01/12
  2. 如何使其显示时间在日期后面,而不是当前时间,因为目前它显示的是当前时间。

我的当前代码并不是很高级,就像下面这样:

theVisit.ArrivalTime = DateTimePicker1.Value
5个回答

7

类似这样的代码将会显示日期和时间:

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");

@<Peter Gluck> 嘿,我遇到了一个错误:“无法隐式转换类型string为system.datetime”。 - TAM

3
为了让它在选择器中以那种格式显示,请设置下面的属性。
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "dd-MMM-yyyy  hh:mm:ss";

1

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

  1. 标准DateTime格式
  2. 自定义DateTime格式

您可以使用这些来构建日期时间,使其看起来符合您的要求。 对于您的示例,您将使用:

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

0

首先,要更改DateTimePicker显示日期时间的方式:

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);

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

0
您可以像这样检查 datetimepicker 是否为空值。
if(DatTimePicker1.Text.Equals(" "))
{
     MessageBox.Show("DateTimePicker is empty");
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接