vb.net - 将数据表的日期时间列格式化为 yyyy/MM/dd HH:mm 字符串
vb.net - Formatting a datetime column of a datatable to a yyyy/MM/dd HH:mm string
我似乎无法弄清楚代码中有什么问题。这是一个屏幕截图,可以看到错误消息、代码和变量的内容。
以及更大部分的代码:
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
我做错了什么?
这只是编译,因为你有 Option Strict Off(no-go)。您必须将从 r2.Item(value.ColumnName)
返回的对象转换为 Date
。这也解决了这个问题,您可以使用 Field
:
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)
。参见:here
我似乎无法弄清楚代码中有什么问题。这是一个屏幕截图,可以看到错误消息、代码和变量的内容。
以及更大部分的代码:
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
我做错了什么?
这只是编译,因为你有 Option Strict Off(no-go)。您必须将从 r2.Item(value.ColumnName)
返回的对象转换为 Date
。这也解决了这个问题,您可以使用 Field
:
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)
。参见:here