c#Winform DateTime仅在Datagrid中显示时间

时间:2016-12-03 15:24:56

标签: c#

您好,感谢您的时间

我有一个填充到DataGrid的DateTime Picker。我遇到的问题是我只想要时间,首选(军事时间)。我试过.ToString .TimeOfDay等等。我认为最后一行代码(今天,月,日)是问题,但不知道如何纠正它。

DKIM

2 个答案:

答案 0 :(得分:0)

使用dateTimePicker.ValueDateTime.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可能已经基于今天,但我不确定。

======编辑=====

你需要知道的事情。

  1. 要从dateTimePicker获取值,您应该使用.Value而不是.Text,.Value将返回DateTime以及您想要使用的内容。
  2. 获得"今天"你应该使用DateTime.Today而不是DateTime.Now。 DateTime.Today将把分钟,小时等设置为零。
    1. 如果你是新手,我会避免使用var并给出真正的类型。
  3. 现在让我们看看你的代码

        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;