将datetime从datatable转换为特定格式

时间:2018-02-13 20:36:54

标签: c# winforms

我想将日期时间值从datatable转换为仅显示时间值。

我有以下代码来进行此转换过程;

DateTime ST = DateTime.ParseExact(dtPivot.Rows[e.DataRow][0].ToString(), "HH:mm:ss",CultureInfo.InvariantCulture);

ulbTime.Text = ST.ToString("HH:mm:ss");

然而,这会引发错误

  

字符串未被识别为有效的DateTime

我搜索但无法为我找到解决方案。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

您不需要解析,因为从数据库中提取的条目应该已经是var model = IDbConnection.Query(query); var time = model.First().Date.ToString("hh:mm:ss"); 字段。因此,理论上,您应该能够提取以下数据。

DateTime

因此,如果您正在使用对象关系映射器(例如Dapper),您的模型对象具有var time = model.First().TimeOfDay(); ,那么您可以使用字符串格式化器来完成时间。

你也可以这样做:

DateTime

直接构建到DateReader是一个时间,类似于日期简写方法。您显然可以使用DataTableToString("hh:mm:ss")访问列信息索引,并使用ToString专门返回时间。但是,在某些情况下,您无法执行DBNull.Value,因为FROM node:8 if $DEVBUILD { RUN apt-get update RUN apt-get --assume-yes install vim } 或无效值将导致引用异常。因此,您需要进行清理并确保无法传递奇数值。

我更喜欢上述内容,因为映射器应根据您定义的类型关联该值。所以你不需要任何额外的铸造或转换。

答案 1 :(得分:1)

您的问题询问DateTime ST = Convert.ToDateTime(dtPivot.Rows[e.DataRow][0]); var t = string.Format("{0:hh:mm}",ST); 所以请使用String.Format来显示时间部分

with()

答案 2 :(得分:-2)

尝试dataRow [index]。 .ToString()