仅更改C#中DateTime对象的Hours / Minutes部分

时间:2018-01-03 07:45:56

标签: c# date datetime

我得到了一个带有StartTime(Datetime)和EndTime(DateTime)属性的ViewModel。在我的编辑表单上,有TimePickers(KENDO UI)显示hh:mm,最终用户可以改变小时数。

现在,我在2017年12月有一个日期对象。在TimePicker中选择新值时,它还将yyyy / mm / dd设置为2018/01/03。

是否有解决方案可以防止时间选择器更改除HH以外的任何其他内容:mm?如果没有,如果我添加'oldtime'属性来存储旧值,我可以将原始yyyy / mm / dd值放在新的DateTime对象中,还是只替换hh / mm?

1 个答案:

答案 0 :(得分:3)

  

是否有解决方案可以防止时间选择器更改HH以外的任何内容:mm?

TimePicker没有错,C#/ .NET没有单独的时间和日期类型。因此,它们在始终具有y / m / d组件的DateTime上运行。

  

我可以将原始yyyy / mm / dd值放在新的DateTime对象

不确定。

var newDateTime = oldDateTime.Date + timePicker.DateTimeValue.TimeOfDay;

DateTime.Date在一天开始时(00:00:00)给你午夜,DateTime.TimeOfDay给你相反的,从午夜开始TimeSpan偏移。它们可以让您轻松地混合和匹配日期和时间。