我正在使用asp.net,mvc / c#编写报告,在我的报告中,我希望显示没有时间的日期,而不是
12/3/2011 00:00:00 ------ to ------ 12/3/2011
我将这个表达式用于显示日期的文本框:
=FormatDateTime(Fields!DateClosed.Value)
并且对于具有日期的项目,它确实在没有时间的情况下正确显示 - 但对于列表中没有日期的其他项目,它们显示时间如下:上午12:00:00
如何修复表达式,使其仅在有日期显示时显示日期,而不显示日期不可用的时间。
答案 0 :(得分:2)
怎么样:
=(DateClosed==null) ? FormatDateTime(DateClosed) : string.Empty;
另外,您可以使用
=(DateClosed==null) ? DateClosed.Value.ToString("mm dd yyyy") : string.Empty;
而不是调用单独的FormatDateTime()
函数(当然,除非您需要集中日期格式,但可以通过将格式存储在web.config中来处理)。
甚至
string FormatDateTime(DateTime? date)
{
var result = date==null ? date.ToString("mm dd yyyy") : string.Empty;
}
如果您不想将三元条件置于标记中。
答案 1 :(得分:1)
所以我玩了这个,我使用了一种不同的格式表达式,幸运的是效果很好。感谢大家的帮助。
=Format(Fields!DateClosed.Value, "d")
答案 2 :(得分:0)
检查日期是否为空,如果是,则设置为string.Empty