如何从列表中仅选择数据部分

时间:2014-01-14 16:25:48

标签: c#

我正在尝试列表。我有一个列表,它从DataTable dt_text_global

获取数据
List<DateTime> Ersch_Online = dt_text_global
                                 .AsEnumerable()
                                 .Select(r => r.Field<DateTime>("Ersch_Online"))
                                 .ToList();

DataTable dt_text_global中的数据仅包含日期,没有时间。

当我像这样使用时,例如

TextBox1.Text = Ersch_Online[1].Tostring();

打印为14.01.2014 00:00:00。但我只想显示日期而不是时间。

我该怎么办?

3 个答案:

答案 0 :(得分:4)

如果您只想显示日期,请使用ToShortDateString()或提供自定义格式字符串:

TextBox1.Text = Ersch_Online[1].ToShortDateString();
// or
TextBox1.Text = Ersch_Online[1].ToString("d");
// or
TextBox1.Text = Ersch_Online[1].ToString("dd.MM.yyyy");

如果您只想显示时间部分,请使用ToShortTimeString()或提供自定义格式:

TextBox1.Text = Ersch_Online[1].ToShortTimeString();
// or
TextBox1.Text = Ersch_Online[1].ToString("t");
// or
TextBox1.Text = Ersch_Online[1].ToString("HH:mm:ss");

答案 1 :(得分:4)

由于您编辑了问题,现在需要显示Date而不是时间。你可以这样做:

TextBox1.Text = Ersch_Online[1].ToShortDateString();

旧答案

  

但我只想表明时间而不是日期。

如果您只想显示Time,请使用TimeOfDay属性从DateTime获取Time部分。像:

List<TimeSpan> Ersch_Online = dt_text_global
                     .AsEnumerable()
                     .Select(r => r.Field<DateTime>("Ersch_Online").TimeOfDay) 
                     .ToList();

答案 2 :(得分:0)

您可以在ToString()方法中指定格式:

TextBox1.Text = Ersch_Online[1].ToString("yyyy.MM.dd");

Here是不同的格式。