String vb.net-将数据表的datetime列格式化为yyyy/MM/dd HH:MM字符串
我似乎不知道代码里写了什么。下面是一个屏幕截图,用于查看错误消息、代码和变量的内容 还有更大一部分的代码:String vb.net-将数据表的datetime列格式化为yyyy/MM/dd HH:MM字符串,string,vb.net,datetime,date-conversion,String,Vb.net,Datetime,Date Conversion,我似乎不知道代码里写了什么。下面是一个屏幕截图,用于查看错误消息、代码和变量的内容 还有更大一部分的代码: For Each value As DataColumn In dt2.Columns If value.DataType = System.Type.GetType("System.DateTime") Then dq = dq & value.ColumnN
For Each value As DataColumn In dt2.Columns
If value.DataType = System.Type.GetType("System.DateTime") Then
dq = dq & value.ColumnName & " = '" & r2.Item(value.ColumnName).ToString("yyyy/MM/dd HH:mm:ss") & "' and "
End If
Next
我做错了什么?这只是编译,因为您有选项“严格关闭”(no go)。您必须将从
r2.Item(value.ColumnName)
返回的对象强制转换为日期
。这也解决了这个问题,您可以使用字段
:
r2.Field(Of Date)(value.ColumnName).ToString("yyyy/MM/dd HH:mm:ss")
由于您是德国人,请注意,您的格式字符串可能不会提供您期望的内容,而是类似于
2021.02.23 15:00:24
。如果您想2021/02/23 15:00:24
您需要使用ToString(“yyyy/MM/dd HH:MM:ss”,CultureInfo.InvariantCulture)
。请参阅:Write Convert.ToDateTime(value.ColumnName).ToString(“yyyy/MM/dd HH:MM:ss”),这将解决问题。@HardikShah谢谢您,这似乎很有效。。。你介意把它贴出来作为答案并解释一下发生了什么吗?谢谢!它现在可以工作了。。我现在遇到的问题是:在数据库中,它保存为2021-02-08 15:00:24
。我读了它,并把它放在一个数据表中。当我迭代datatable时,datatable包含2021-08-02 15:00:24
将值传递给datatable时,是否有方法指定日期时间格式?@sharkyergy:adatetime
在数据库中或Date
(在VB.NET中)没有任何格式,它们只有一个值。当您想要显示此值时,可以使用ToString
为其提供格式,就像您在代码中所做的那样。但决不要在数据库中将其存储为字符串,也不要过早地在后端代码中将其转换为字符串。在你想把它显示在某个地方之前,先这样做。它是数据库中的一个日期时间。。。我所做的唯一转换就是你在这里看到的。。但不知何故,这是颠倒的月份和天数。。正如您在上面的屏幕截图中看到的,r2包含#8/2/2021…等#
这是2月8日。。。但是一旦我用你发布的代码转换它,我就得到了8月2日…@Sharkyergy:不,你把调试器窗口中看到的东西和它的实际含义混淆了。日期格式内置于调试器中。在VB.NET中,调试器窗口以以下格式显示日期:#M/d/yyyy hh:mm:ss AM/PM
。所以第一个月是这个月。这就是我之前评论的意思,日期只有一个值,格式由GUI应用。。非常感谢。