Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#可空日期时间格式错误-无法隐式转换类型';字符串';至';System.DateTime?&x27;_C#_Datetime_Formatting_Datetime Format - Fatal编程技术网

C#可空日期时间格式错误-无法隐式转换类型';字符串';至';System.DateTime?&x27;

C#可空日期时间格式错误-无法隐式转换类型';字符串';至';System.DateTime?&x27;,c#,datetime,formatting,datetime-format,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; 但我得到了一个错误: Ca

我的数据库中有一个可为空的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")
这样做:

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

使用此代码
.ToString(“DD-MMM-YYYY”)
,您将向DateTime类型属性传递一个字符串。请确保
viewModel.ExpiryDate
也是一个可为空的日期时间类型,因为您正在尝试分配空值。

viewModel.ExpiryDate
是一个
日期时间?
但您正在尝试分配字符串。不清楚吗?
DateTime
没有格式,您想用
ToString(“DD-MMM-YYYY”)
在这里实现什么?显然,ExpiryDate应该指定为Convert.ToDateTime(字符串格式)或DateTime.ParseExact(字符串格式)。ExpiryDate是我的数据库表中可为空的日期时间值。在我看来,我想在文本框字段中格式化它的显示。这就是为什么我在将其分配给viewmodel时尝试对其进行格式化。为什么不直接
viewmodel.ExpiryDate=topic.ExpiryDate
?不确定两者的类型,但您是正确的fubo.)
Convert.ToDateTime(String.Format(“{0:dd-MMM-yyyy}”,topic.expireydate.Value)
DateTime.ParseExact(topic.expireydate.Value,“dd-MMM-yyyy”,CultureInfo.InvariantCulture)
如果OP需要特定的日期格式,即topic.ExpiryDate是字符串而不是DateTime,则可以使用该选项。@Tetsuya topic.ExpiryDate是一个可以为空的DateTime值。