无法在c# mvc模型中合并日期和时间

本文关键字:合并 日期 时间 模型 mvc | 更新日期: 2023-09-27 17:54:06

我有一个这样的模型。

    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true), Display(Name = "Start Date")]
    public DateTime? StartDate { get; set; }
    [DataType(DataType.Time)]
    [DisplayFormat(DataFormatString = "{0:HH:mm}", ApplyFormatInEditMode = true), Display(Name = "Start Time")]
    public DateTime? StartTime { get; set; }

我想把它们组合成一个变量。

我搜索过代码应该是这样的。

newDateTime = date.Date + time.TimeOfDay;

但我试过了

    [Display(Name = "Start Time")]
    public DateTime? FullStartTime
    {
        get
        {
            return StartDate.Date + StartTime.TimeOfDay;
            //or return StartDate + StartTime;
        }
    }

两个都不行。问题在哪里?谢谢。

无法在c# mvc模型中合并日期和时间

当您尝试从两个不同的DateTime创建DateTime对象时,您必须创建一个新的DateTime对象并使用其构造函数如下:

newDateTime = new DateTime(date.Date.Year, date.Date.Month,date.Date.Year,time.Hour,time.Minutes,time.Second);

您应该检查StartDateStartTime是否为空(您的属性是可空类型)

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true), Display(Name = "Start Date")]
public DateTime? StartDate { get; set; }
[DataType(DataType.Time)]
[DisplayFormat(DataFormatString = "{0:HH:mm}", ApplyFormatInEditMode = true), Display(Name = "Start Time")]
public DateTime? StartTime { get; set; }
[Display(Name = "Start Time")]
public DateTime? FullStartTime
{
    get
    {
        if(StartDate == null || StartTime == null) return null;
        return StartDate.Value.Date + StartTime.Value.TimeOfDay;
        //or return StartDate + StartTime;
    }
}