我得到了一个带有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?
答案 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
偏移。它们可以让您轻松地混合和匹配日期和时间。