无法隐式转换类型'System.DateTime的?“以“System.DateTime的'。显式转换存在 [英] Cannot implicitly convert type 'System.DateTime?' to 'System.DateTime'. An explicit conversion exists

查看:795
本文介绍了无法隐式转换类型'System.DateTime的?“以“System.DateTime的'。显式转换存在的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想转换日期时间? todatetime但我得到这个错误:




错误7无法隐式转换类型'?System.DateTime的'至
'的System.DateTime 。显式转换存在




下面是我的代码:

 公共字符串ConvertToPersianToShow(?日期时间日期时间)
{
的DateTime DT;
线日期;
DT =日期时间;

串一年= Convert.ToString(persian_date.GetYear(DT));
串月= Convert.ToString(persian_date.GetMonth(DT));
串天= Convert.ToString(persian_date.GetDayOfMonth(DT));



如果(month.Length == 1)
{
一个月=0+ Convert.ToString(persian_date.GetMonth(DT) );
}
如果(day.Length == 1)
{
天=0+ Convert.ToString(persian_date.GetDayOfMonth(DT));
}
//日期= Convert.ToString(persian_date.GetYear(DT))+/+ Convert.ToString(persian_date.GetMonth(DT))+/+
/ / Convert.ToString(persian_date.GetDayOfMonth(DT));
日期=年+/+月+/+日+(+ dt.Hour +:+ dt.Minute +);
归期;
}


解决方案

您有3种选择:



1)获取默认值

  DT =日期时间??日期时间。现在; 



它将分配 DateTime.Now (或你想要的任何其他数值)如果日期时间为空



2)检查日期时间包含值,如果没有返回空字符串

 如果(!datetime.HasValue)返回; 
DT = datetime.Value;



3)方法的变更签名

 公共字符串ConvertToPersianToShow(DateTime的日期时间)

这都是因为的DateTime?意味着它是可空的DateTime 所以它分配给的DateTime 你需要检查它是否包含价值,然后才分配。


I am trying to convert datetime? todatetime but I get this Error:

Error 7 Cannot implicitly convert type 'System.DateTime?' to 'System.DateTime'. An explicit conversion exists

Here is my code:

public string ConvertToPersianToShow(DateTime?  datetime)
{
  DateTime dt;
  string date;
  dt = datetime;

  string year = Convert.ToString(persian_date.GetYear(dt));
  string month = Convert.ToString(persian_date.GetMonth(dt));
        string day = Convert.ToString(persian_date.GetDayOfMonth(dt));



  if (month.Length == 1)
   {
     month = "0" + Convert.ToString(persian_date.GetMonth(dt));
   }
  if (day.Length == 1)
   {
     day = "0" + Convert.ToString(persian_date.GetDayOfMonth(dt));
   }
     //date = Convert.ToString(persian_date.GetYear(dt)) + "/" + Convert.ToString(persian_date.GetMonth(dt)) + "/" +
     //       Convert.ToString(persian_date.GetDayOfMonth(dt));
   date = year + "/" + month + "/" + day+"("+dt.Hour+":"+dt.Minute+")";
   return date;
  }

解决方案

You have 3 options:

1) Get default value

dt = datetime??DateTime.Now;

it will assign DateTime.Now (or any other value which you want) if datetime is null

2) Check if datetime contains value and if not return empty string

if(!datetime.HasValue) return "";
dt = datetime.Value;

3) Change signature of method to

public string ConvertToPersianToShow(DateTime  datetime)

It's all because DateTime? means it's nullable DateTime so before assigning it to DateTime you need to check if it contains value and only then assign.

这篇关于无法隐式转换类型'System.DateTime的?“以“System.DateTime的'。显式转换存在的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆