我想将日期时间值从datatable转换为仅显示时间值。
我有以下代码来进行此转换过程;
DateTime ST = DateTime.ParseExact(dtPivot.Rows[e.DataRow][0].ToString(), "HH:mm:ss",CultureInfo.InvariantCulture);
ulbTime.Text = ST.ToString("HH:mm:ss");
然而,这会引发错误
字符串未被识别为有效的DateTime
我搜索但无法为我找到解决方案。
我该如何解决这个问题?
答案 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
是一个时间,类似于日期简写方法。您显然可以使用DataTable
或ToString("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()