Eval("DateColumn") 回傳 object,直接呼叫 .ToString("yyyy-MM-dd") 會報錯,需先轉型為 DateTime。
<%# Convert.ToDateTime(Eval("CreateDate")).ToString("yyyy-MM-dd") %>
或使用 C# 6.0+ 空值條件運算子(若欄位允許 null):
<%# (Eval("CreateDate") as DateTime?).Value.ToString("yyyy-MM-dd") %>
| 格式 | 輸出範例 |
|---|---|
| yyyy-MM-dd | 2024-03-15 |
| yyyy/MM/dd HH:mm | 2024/03/15 14:30 |
| yyyy年MM月dd日 | 2024年03月15日 |
| MM/dd/yyyy | 03/15/2024 |
| HH:mm:ss | 14:30:05 |
<%# FormatDate(Eval("CreateDate"), "yyyy-MM-dd") %>
protected string FormatDate(object dateObj, string format = "yyyy-MM-dd")
{
if (dateObj == null || dateObj == DBNull.Value) return "";
return Convert.ToDateTime(dateObj).ToString(format);
}
優點:集中處理 null/DBNull、統一格式、易維護。
上述語法適用於所有支援資料繫結語法 <%# %> 的控件。