更新时间:2023-01-29 16:37:28
您有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.