我在LINQ查询中格式化两个日期时间(实际上,它只是时间部分)时遇到了麻烦。我在gridview(gvDaily)中获得的时间值具有以下格式:“HH:mm:ss-HH:mm:ss”。我想拥有的是“HH:mm-HH:mm”时间格式,但我不知道如何实现它。不用说,我遇到问题的是查询的时间部分。
var dailyList = (from d in db.Daily
select d).ToList();
gvDaily.DataSource = from d in dailyList
orderby d.Datum
select new { d.idDaily, d.Biljeske, d.Datum, d.EfektivnoSati, Tvrtka = d.Ticket.Firma.Naziv, DailyManager = d.Kontakt.Ime + " " + d.Kontakt.Prezime, Ticket = d.Ticket.Opis, Time= d.TimeFrom+ "-" + d.TimeTo, d.TimeFrom, d.TimeTo, d.Opis, d.Ticket.Zatvoren, d.Ticket.IzdanRacun, TicketNumber = d.Ticket.idTicket + "-" + d.Ticket.RedniBroj, d.Dolazak };
提前谢谢!
P.S。自定义格式不起作用所以我试图找到一些其他的想法。
答案 0 :(得分:1)
我不知道LINQ to Entities是否支持自定义格式,但您可以尝试
Time= d.TimeFrom.ToString("HH:mm") + "-" + d.TimeTo.ToString("HH:mm")
但是,我个人将值保留为LINQ to Entities部分中的DateTime
值,并且只转换为.NET代码中的文本。特别是,不同的文化有不同的表示时间的首选方式,所以你应该尊重这一点。将“提取数据”与“呈现数据”分开。