C#Nullable DateTime格式错误 - 无法将类型'string'隐式转换为'System.DateTime?'

时间:2016-06-16 07:59:18

标签: c# datetime formatting datetime-format

我的数据库中有一个可以为空的datetime列。

在我的viewmodel中,我将此属性定义如下:

public DateTime? ExpiryDate { get; set; }

在我的控制器编辑方法中,我尝试按如下方式设置此属性的值:

 viewModel.ExpiryDate = topic.ExpiryDate.HasValue ?
          topic.ExpiryDate.Value.ToString("DD MMM YYYY") : null;

但我收到错误:

 Cannot implicitly convert type 'string' to 'System.DateTime?'

如果我有以下,即不可为空,它可以正常工作,没有任何错误:

 public DateTime ExpiryDate { get; set; }

 viewModel.ExpiryDate = topic.ExpiryDate.ToString("DD MMM YYYY")

1 个答案:

答案 0 :(得分:3)

这样做:

viewModel.ExpiryDate = topic.ExpiryDate.HasValue ?
          topic.ExpiryDate.Value : null;

使用此代码.ToString("DD MMM YYYY"),您将字符串传递给DateTime类型属性。请确保viewModel.ExpiryDate也是可以为空的DateTime类型,因为您尝试分配空值。