【问题标题】:How to format date in Linq [closed]如何在 Linq 中格式化日期 [关闭]
【发布时间】:2014-12-17 05:45:50
【问题描述】:

如何在 Linq 中格式化日期 --------------------------

Hi,
I am working on a linq query. I want to format date column to 'Mm/dd/yy' format. But, the Linq query shows error that Linq doesn't support formatting. Any help?

这是我的代码:

这是 linq 查询的一部分。我正在尝试格式化和连接两列。

select new abc
                           {
                               cardDates = (cad.Key.SchStartDT.ToString("dd/MM/yyyy") + "-" + cad.Key.SchEndDT.ToString("dd/MM/yyyy"))
                           });

【问题讨论】:

  • 你能把你写的代码展示一下吗?
  • 请出示您的失败代码。解释对现有解决方案的修复往往比解释从头构建的解决方案容易得多。
  • 选择新的 abc { car​​dDates = (cad.Key.SchStartDT.ToString("dd/MM/yyyy") + "-" + cad.Key.SchEndDT.ToString("dd/MM/yyyy ")) });
  • @FoggyDay 不,不是。

标签: c# linq asp.net-mvc-4


【解决方案1】:

此代码适用于(LINQ to Objects 案例)

    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public DateTime DateOfBirth { get; set; }
    }


    private static void Main(string[] args)
    {

        var people = new List<Person>
        {
            new Person
            {
               Id = 1,
               Name = "James",
               DateOfBirth = DateTime.Today.AddYears(-25),
            },

            new Person
            {
                Id = 2,
                Name = "John",
                DateOfBirth = DateTime.Today.AddYears(-20),
            },

            new Person
            {
               Id = 3,
               Name = "Peter",
               DateOfBirth = DateTime.Today.AddYears(-15),
            }
       };

       var result = people.Select(t => new
       {
           t.Name,
           DateStr = t.DateOfBirth.ToString("dd/MM/yyyy")
       }).Take(2).ToList();

       foreach (var r in result)
       {
          Console.WriteLine(r.Name);
          Console.WriteLine(r.DateStr);
       }

       Console.ReadLine();
}

对于 Linq to Entities 案例,请查看此答案 Formatting date in Linq-to-Entities query causes exception

【讨论】:

  • 请检查我的代码 select new abc { car​​dDates = (cad.Key.SchStartDT.ToString("dd/MM/yyyy") + "-" + cad.Key.SchEndDT.ToString("dd /MM/yyyy")) });
  • 这是从 LINQ to Entities(如实体框架)还是 LINQ to Objects(在内存中)选择?
  • 我收到一个错误::LINQ to Entities 无法识别方法 'System.String Format(System.String, System.Object)' 方法,并且此方法无法转换为存储表达式。
  • 对不起。我正在使用 LINQ to Entities
  • 点击我更新答案的链接。
猜你喜欢
  • 2013-01-29
  • 1970-01-01
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多