如何解决可空的日期时间
| 我有1个不可为null的datetime字段和1个不可为null的日期时间字段。我可以将以下代码与不可为空的代码一起使用: c.StartDate.Day.ToString() + \"/\" +
c.StartDate.Month.ToString() + \"/\" +
c.StartDate.Year.ToString()
但是,当我尝试使用可为null的值来执行此操作时,出现错误:
\'System.Nullable \'不包含\'Day \'的定义,并且找不到扩展方法\'Day \'接受类型为'\ System.Nullable \'的第一个参数(您是否缺少using指令或装配参考?)
如何获取可为空的日期时间的年,月,日?
解决方法
您必须在可为null的属性上使用
.Value
属性:
c.StartDate.Value.Day.ToString() //etc
检查null
之后,您可以:
c.StartDate.Value.ToString(\"dd-MMM-yyyy\");
,if(c.StartDate.HasValue)
{
DateTime sd = c.StartDate.Value;
str = sd.Day.ToString() + \"/\" + sd.Month.ToString() + \"/\" + sd.Year.ToString()
}
else
str = \"some alternative for when there\'s no date\";
更简单:
string str = c.StartDate.HasValue ? c.StartDate.value.ToString(@\"d\\/M\\/yyyy\") ? \"some alternative for when there\'s no date\";
,if(c.EndDate.HasValue)
{
c.EndDate.Value.Day.ToString() + ...
}
您可能还需要检查日期的“ 8”,然后将其转换为仅具有一种格式设置样式且不带阴影的字符串。
,您希望结果是什么? \“ // \”
您可以创建返回\“ \”的扩展方法,但是仍然存在最终结果实际是什么的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。