我在MYSQL中有一个LOGINTIME列作为TIME数据类型。
此列包含更多值,例如
11:59:00
11:45:34
14:22:22
我想在datagridview中将此列显示为' hh:mm tt' 我的意思是,
11:59 AM
11:45 AM
02:22 PM
代码:
dataGridView1.Columns["LOGINTIME"].DefaultCellStyle.Format = "hh:mm tt";
这是我使用的代码,它显示错误。
http://postimg.org/image/fm01hhyzp/
MessageBox.Show(dataGridView1.Columns["LOGINTIME"].ValueType.ToString());
显示" System.TimeSpan"。那么如何在datagridview中格式化TimeSpan列为" hh:mm tt"
答案 0 :(得分:1)
.NET接受MYSQL的TIME数据类型为System.TimeSpan而不是System.DateTime。
在这里,您尝试分配自定义DateTime格式,这就是“输入字符串格式不正确”的错误原因。
您需要指定自定义TimeSpan格式,例如
dataGridView1.Columns["LOGINTIME"].DefaultCellStyle.Format = @"hh\:mm";
选中此链接以了解有关自定义TimeSpan格式的更多信息
https://msdn.microsoft.com/en-us/library/ee372287(v=vs.110).aspx
默认情况下,TimeSpan不支持12小时时间格式。
您需要将TimeSpan转换为DateTime对象,并根据需要指定任何自定义DateTime格式。
答案 1 :(得分:-1)
检查我编辑的答案......
dataGridView1.Rows[Index].Cells["LOGINTIME"].Value = Convert.ToDateTime(dataGridView1.Rows[Index].Cells["LOGINTIME"].Value).ToString("hh:mm tt");