我正在使用C#和WinForms尝试将dateTimePicker中的日期放入变量中。但我不断得到日期和时间。在下面的示例中,textBox1显示了我正在寻找的内容。但我无法弄清楚如何为textBox2做同样的事情。它给出了日期和时间。这不是我在我的应用程序中使用的确切代码,而是用作示例的简化示例。如何修改它以满足我的需要?感谢。
private void dateTimePicker1_CloseUp(object sender, EventArgs e)
{
DateTime varDate;
textBox1.Text = dateTimePicker1.Value.ToShortDateString();
varDate = dateTimePicker1.Value;
textBox2.Text = Convert.ToString(varDate);
}
答案 0 :(得分:10)
varDate = dateTimePicker1.Value.Date;
这将返回DateTimePicker的值,时间设置为00:00:00
答案 1 :(得分:4)
试试这个
textBox2.Text = varDate.ToShortDateString();
或
varDate = DateTimePicker1.Value.Date;
textBox2.Text = varDate.ToShortDateString() // varDate.ToString("MM/dd/yy") this would also work
答案 2 :(得分:1)
像这样:
private void dateTimePicker1_CloseUp(object sender, EventArgs e)
{
DateTime varDate;
textBox1.Text = dateTimePicker1.Value.ToShortDateString();
varDate = dateTimePicker1.Value;
textBox2.Text = varDate.ToShortDateString();
}
答案 3 :(得分:1)
试试这个:
textBox1.Text = dateTimePicker1.Value.ToString("yyyy-MM-dd");
答案 4 :(得分:1)
感谢Lazarus上面的评论,我想我现在理解你的问题......
DateTime变量无法仅保存Date值,您可以做的最好是将时间部分设置为00:00:00。不幸的是,当你调用默认的ToString()方法时,这不会阻止它被打印出来。因此,解决问题的方法完全取决于您要解决的实际问题是:
如果您尝试仅在TextBox中显示Date部分,那么您可以使用ToShortDateString()方法或任何其他date formatting string,但我想您已经知道这一点,因为您正在使用该方法TextBox1中。
如果您要比较两个日期时间并且不希望时间部分相关,则可以使用Date属性确保时间部分设置为午夜。
datetimeA.Date == dateTimeB.Date
请注意,这并不能避免时间部分的比较(被比较的对象仍然是Date 次,但确实它们是相同的。
我认为您可能希望这样做的另一个原因是因为您觉得该对象太复杂并且包含无关的信息。虽然我非常怀疑这是一个问题,但是你可能会感到安慰的是,你知道DateTime对象的内部只是一个长值,并且你不会在未使用的时间部分浪费空间。