如何在从MYSQL时间字段检索的datagridview中将时间列显示为hh:mm tt?

时间:2015-05-25 06:41:23

标签: c# datagridview

我在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"

2 个答案:

答案 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");