转发器中的日期时间格式

时间:2010-05-12 15:34:27

标签: c# .net asp.net

我正在尝试格式化转发器中的日期时间(yyyy/MM/dd),该转发器绑定到ObjectDataSource,如图所示

(这项工作)

<%# ((MyType)Container.DataItem).CreateDateTime.ToString("yyyy/MM/dd")%>

(这不会起作用)

<%# String.Format("{0:yyyy/MM/dd}",((MyType)Container.DataItem).UpdateDateTime)%>

我希望这两件事都有效,因为有时属性UpdateDateTime为null,在这种情况下,第二行代码处理智能。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

我刚刚测试了你认为不起作用的第二行代码,当UpdateDateTime为空时,假设它的数据类型为datetime?,它可以正常工作。

如果CreateDateTime为空,那么您的第一行代码实际上会出错,并且可以像第二行一样修复它:

<%# String.Format("{0:yyyy/MM/dd}",((MyType)Container.DataItem).CreateDateTime) %>

您能否提供有关数据类型和接收错误的更多信息?

另一个解决方案是使用(再次假设DateTime?数据类型,但您也可以检查DBNull

<%# (((MyType)Container.DataItem).UpdateDateTime == null) ?
    "No Date Text" :
    ((MyType)Container.DataItem).UpdateDateTime.Value.ToString("yyyy/MM/dd") %>