我的LINQ格式化日期有问题。这是代码
var resultCustomer = from row in formDg.dtCustomer.AsEnumerable()
where row.Field<int>("customerID") == customerID2
select new
{
name = row["customerName"].ToString(),
ic = row["customerIC"].ToString(),
add1 = row["customerAdd1"].ToString(),
add2 = row["customerAdd2"].ToString(),
tel = row["customerTel"].ToString(),
tel2 = row["customerTel2"].ToString(),
tel3 = row["customerTel3"].ToString(),
email = row["customerEmail"].ToString(),
dateRegister = row["customerDateRegister"].ToString(),
customerRef = row["customerRef"].ToString(),
customerGroup = row["groupCustName"].ToString(),
panelName = row["panelName"].ToString(),
};
var firstRecord = resultCustomer.First();// My record return single row only
我的问题是我如何在 customerDateRegister?中设置“dd / MM / yyyy”等自定义日期的格式,因为我的文本框显示 16-Nov-12 12:00时出现问题:00 AM 。我不想显示时间,只想显示日期。
我试过这样的 tbDateRegOv.Text = firstRecord.dateRegister.ToString(“dd / MM / yyyy”); 。不行。然后我在LINQ中尝试 dateRegister = row [“customerDateRegister”]。ToString(“dd / MM / yyyy”),。同样的问题。
那我怎么解决这个问题呢?感谢帮助。 :)
答案 0 :(得分:3)
您需要先将行转换为DateTime
。这将允许您使用日期的自定义格式字符串。
dateRegister = ((DateTime)row["customerDateRegister"]).ToString("dd/MM/yyyy")
答案 1 :(得分:2)
如果customerDateRegister
的类型为DateTime
,则首先应将其设为DateTime
。因此,使用DataRow
扩展方法Field<T>
:
dateRegister = row.Field<DateTime>("customerDateRegister")
答案 2 :(得分:1)
你可以尝试这个,用这个替换你的dateRegister行。
dateRegister = ((DateTime)row["customerDateRegister"]).ToString("dd/MM/yyyy"),
答案 3 :(得分:0)
或者,您可以将MaskedEditBox与所需的日期时间掩码一起使用