2017-05-05 56 views
0

我有这个标签从数据库检索时间并显示在标签中。但在数据库中的时间也包括第二个例如03:45:29,我怎么可以删除时间秒在检索后标签变成03:45。这是我的代码:LabelDateMarker.Text = LabelDateMarker.Text + " " + dr[3].ToString();如何从数据库中检索后删除时间秒?

回答

1

使用的格式字符串这

((DateTime)dr[3]).ToString("yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture); 

,而不是

dr[3].ToString(); 

欲了解更多信息,看看可用的格式在MSDN

+0

我可能会建议使用'HH:mm',而不是'HH: mm'。 –

+0

这出现错误,即“方法toString需要1个参数没有超载” – NFH

+0

@JonSkeet好主意,改变了它 @FATINHAZWANI所以你的dr [3]值不是'DateTime'?哪种类型? –

2

假设drSqlDataReader或类似的,你可能想投向DateTime,然后适当地格式化值:

DateTime dateTime = (DateTime) dr[3]; 
string formatted = dateTime.ToString("yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture); 
LabelDateMarker.Text += " " + formatted; 

这里yyyy-MM-dd HH:mm是一个custom date/time format string表明您想要的小时和分钟的ISO-8601格式的日期部分之后。

格式化时我使用了不变的文化,以避免在默认情况下不使用格里历日历的语言环境中给出意外的结果。

(我假设的值总是非空的。如果它可能为空,你应该先dr.IsDBNull(3)检查它。)

+0

如果数据库中的时间为'null',该怎么办? –

+1

@ZoharPeled:如果这是一个问题,OP应该首先使用'dr.IsDBNull(3)'检查它。这不在这个问题的范围之内,但IMO。 –

+1

就是这样,我认为这不在这个问题的范围之内。 –

相关问题