您好,感谢您的时间
我有一个填充到DataGrid的DateTime Picker。我遇到的问题是我只想要时间,首选(军事时间)。我试过.ToString .TimeOfDay等等。我认为最后一行代码(今天,月,日)是问题,但不知道如何纠正它。
DKIM
答案 0 :(得分:0)
使用dateTimePicker.Value
和DateTime.TimeofDay
:
var calculated_start_time = DateTime.Today + dateTimePicker1.Value.TimeofDay;
答案 1 :(得分:0)
试试这个。现在,您是否在不同的行上进行字符串转换,以便更好地识别您是否存在错误。
var calculated_start_time = new DateTime(today.Year, today.Month,
today.Day, Convert.ToInt16(start_time_array[0]),
Convert.ToInt16(start_time_array[1]), 00);
string time = calculated_start_time.ToString("HH:mm");
但它并不完全清楚你想要完成什么。如果我理解正确,您可能需要考虑以下选项。将日期时间选择器设置为仅显示时间https://msdn.microsoft.com/en-us/library/ms229631.aspx
timePicker.Format = DateTimePickerFormat.Time;
然后我认为以下内容应该可行,但我现在无法测试它。
string dateTimeYouWant = DateTime.Today.Add(DateFromTimePicker.TimeOfDay);
你可能甚至不需要做任何事情,因为DateFromTimePicker可能已经基于今天,但我不确定。
======编辑=====
你需要知道的事情。
现在让我们看看你的代码
var start_time = dateTimePicker1.Text;
var start_time_array = start_time.Split(':');
var today = DateTime.Now;
var trailer_count = Convert.ToInt32(tbTrailer_Needed.Text);
var minutes_apart = Convert.ToDouble(tbTime_Between.Text);
var calculated_start_time = new DateTime(today.Year, today.Month,
today.Day, Convert.ToInt16(start_time_array[0]),
Convert.ToInt16(start_time_array[1]), 00);
让我们删除对您的问题没有影响的那两行
var start_time = dateTimePicker1.Text;
var start_time_array = start_time.Split(':');
var today = DateTime.Now;
var calculated_start_time = new DateTime(today.Year, today.Month,
today.Day, Convert.ToInt16(start_time_array[0]),
Convert.ToInt16(start_time_array[1]), 00);
您希望用以下代码替换所有代码:
DateTime calculated_start_time = DateTime.Today.Add(dateTimePicker1.Value.TimeOfDay);
为了让它更好地配置你的datetimepicker(在表单或属性编辑器的初始化),所以你的用户不能选择一个日期但只有一个时间:
dateTimePicker1.Format = DateTimePickerFormat.Time;
dateTimePicker1.ShowUpDown = true;