我想转换日期时间?todatetime但我收到此错误:
错误7无法隐式转换类型'System.DateTime?' 到'System.DateTime'.存在显式转换
这是我的代码:
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;
}
Run Code Online (Sandbox Code Playgroud)
Kam*_*ski 43
你有3个选择:
1)获取默认值
dt = datetime??DateTime.Now;
Run Code Online (Sandbox Code Playgroud)
DateTime.Now如果datetime为null ,它将分配(或任何其他您想要的值)
2)检查datetime是否包含值,如果不返回空字符串
if(!datetime.HasValue) return "";
dt = datetime.Value;
Run Code Online (Sandbox Code Playgroud)
3)将方法的签名更改为
public string ConvertToPersianToShow(DateTime datetime)
Run Code Online (Sandbox Code Playgroud)
这一切都是因为DateTime?它意味着它可以为空,DateTime所以在分配它之前DateTime需要检查它是否包含值,然后再分配.
Dav*_*ton 20
dt是nullable你需要访问它的Value
if (datetime.HasValue)
dt = datetime.Value;
Run Code Online (Sandbox Code Playgroud)
重要的是要记住它可以NULL.这就是为什么nullablestruct具有HasValue告诉你它是否存在的属性NULL.
您还可以使用它来指定默认值null-coalescing operator ??
dt = datetime ?? DateTime.Now;
Run Code Online (Sandbox Code Playgroud)
如果左侧的值为,则将在右侧分配值 NULL
| 归档时间: |
|
| 查看次数: |
89388 次 |
| 最近记录: |