无法隐式转换类型'System.DateTime的?“以“System.DateTime的'。显式转换存在 [英] Cannot implicitly convert type 'System.DateTime?' to 'System.DateTime'. An explicit conversion exists
问题描述
我想转换日期时间? 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) ifdatetime
is null2) 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 nullableDateTime
so before assigning it toDateTime
you need to check if it contains value and only then assign.这篇关于无法隐式转换类型'System.DateTime的?“以“System.DateTime的'。显式转换存在的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!