如何在c#中使用linq格式化对象集合中的日期

时间:2015-02-20 11:17:02

标签: c# linq datetime

我的集合中有一个对象列表,需要在对象日期属性(NoteDate)上格式化日期,以"dd'/'MM'/'yyyy HH:mm:ss"的格式显示日期,而在数据库中,日期的格式类似于{{ 1}}。以下是我的目标

'2015-02-19 00:00:00.000'

我填写下面的集合

 public class Note
 {
 public int Id { get; set; }
 public string NoteText { get; set; }
 public DateTime? NoteDate { get; set; }
 }

我们如何编写查询以获得所需的日期格式? 感谢

3 个答案:

答案 0 :(得分:1)

您正确地将日期存储在DateTime?对象中。 DateTime只是一个存储机制。

您真正感兴趣的是如何在某些用户界面中显示 DateTime

所以这是你的日期/时间将要采取的步骤:

  1. 从数据库中返回查询内容
  2. 存储在DateTime属性
  3. 向用户显示
  4. 要格式化DateTime对象中的值,有几个选项 - 请查看DateTime类上的方法。

答案 1 :(得分:0)

您的日期将表示为DateTime实例.. .NET如何决定代表日期。

当您向用户显示它们/使用它们在某处显示时,您可以在此处简单地格式化它们。例如:

var notesList = _uow.Find<Note>(n => n.FK == leadId).ToList();

var thirdNoteDateString = notesList[2].NoteDate.ToString("dd MM yyyy");

或者,也许在Razor视图中(如果这是一个MVC应用程序):

@foreach (var n in Model.Notes) {
    <p>@n.NoteDate.ToString("dd MM yyyy")</p>
}

希望这显示出不同之处。当您决定提交日期时,如何呈现日期。

答案 2 :(得分:0)

您不应仅为展示目的修改业务对象的内容, 您应该使用转换器或字符串格式,如:

<TextBlock Text="{Binding Date, StringFormat={}{0:MM/dd/yyyy}}" />

请参阅此question了解详情