我查了这个链接 Format SQL Server 2012 Time(7) to "HH:mm"
但我想更改C#中的格式。
喜欢这个
dgvRoster.Columns[1].DefaultCellStyle = new DataGridViewCellStyle { Format = "hh:mm tt" };
这行代码适用于SQL Server的datetime
数据类型。
我尝试将数据类型DateTime
更改为time(7)
和time(0)
,但会在这些代码行中导致THIS EXCEPTION。
答案 0 :(得分:0)
Stack Overflow Answer to a similar case in MySQL
.NET接受TIME数据类型为System.TimeSpan而不是System.DateTime。
在这里,您尝试分配自定义DateTime格式,这就是您获得的原因 错误为"输入字符串的格式不正确"。
您需要指定自定义TimeSpan格式,例如
dataGridView1.Columns 1。DefaultCellStyle.Format = @" hh:mm";
选中此链接以了解有关自定义TimeSpan格式的更多信息
https://msdn.microsoft.com/en-us/library/ee372287(v=vs.110).aspx
默认情况下,TimeSpan不支持12小时时间格式。
您需要将TimeSpan转换为DateTime对象并指定任何自定义 您可以根据需要使用DateTime格式。
答案 1 :(得分:0)
来自MSDN:
自定义TimeSpan格式说明符不包括占位符分隔符符号,例如将小时数与小时数,小时数与分数小时数或秒数与小数秒数分隔开的符号。相反,这些符号必须作为字符串文字包含在自定义格式字符串中。例如,“dd.hh:mm”将句点(。)定义为天和小时之间的分隔符,并将冒号(:)定义为小时和分钟之间的分隔符。
您必须使用\\:
代替:
。
第二个问题是tt
TimeSpan
因此,要么将数据类型保持为DateTime
,要么将格式更改为Format = @"hh\:mm"