LINQ中的日期格式

时间:2012-11-16 16:10:56

标签: c# winforms linq telerik

我的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”),。同样的问题。

那我怎么解决这个问题呢?感谢帮助。 :)

4 个答案:

答案 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与所需的日期时间掩码一起使用