C# 如何在datagridview控件c中更改SQL Server时间(7)格式(hh:mm tt)#

C# 如何在datagridview控件c中更改SQL Server时间(7)格式(hh:mm tt)#,c#,sql-server,winforms,datetime,datagridview,C#,Sql Server,Winforms,Datetime,Datagridview,我检查了这个链接 但我想更改C#中的格式 像这样 dgvRoster.Columns[1].DefaultCellStyle = new DataGridViewCellStyle { Format = "hh:mm tt" }; 这行代码适用于SQL Server的datetimedatatype 我尝试将数据类型DateTime更改为time(7)和time(0)这两种类型,但会在这些代码行上引起错误。 .NET接受时间数据类型为System.TimeSpan而不是System.Date

我检查了这个链接

但我想更改C#中的格式

像这样

dgvRoster.Columns[1].DefaultCellStyle = new DataGridViewCellStyle { Format = "hh:mm tt" };
这行代码适用于SQL Server的
datetime
datatype

我尝试将数据类型
DateTime
更改为
time(7)
time(0)
这两种类型,但会在这些代码行上引起错误。

.NET接受时间数据类型为System.TimeSpan而不是System.DateTime

在这里,您试图分配自定义日期时间格式,这就是为什么您得到 错误为“输入字符串格式不正确”

您需要指定自定义TimeSpan格式,如

dataGridView1.Columns.DefaultCellStyle.Format=@“hh:mm”

查看此链接了解有关自定义TimeSpan格式的更多信息

默认情况下,TimeSpan不支持12小时时间格式

您需要将TimeSpan转换为DateTime对象并指定任何自定义 日期时间格式如您所需

发件人:

自定义TimeSpan格式说明符不包括占位符分隔符符号,例如将天与小时、小时与分钟或秒与分数秒分隔的符号。相反,这些符号必须作为字符串文字包含在自定义格式字符串中。例如,“dd.hh:mm”将句点(.)定义为天和小时之间的分隔符,将冒号(:)定义为小时和分钟之间的分隔符

为此,您必须使用
\\:
而不是

第二个问题是
tt
,它不受
TimeSpan


因此,您要么将数据类型保持为
DateTime
,要么将格式更改为
format=@“hh \:mm”

谢谢此格式@“hh \:mm”正常工作,但我也需要AM/PM。您必须使用
DateTime
然后sql server和.net除了DateTime之外,没有任何与此格式“hh:mm tt”兼容的类型吗(因为没有必要注明日期,这对我来说是垃圾)?