如何将 DB2 时间戳转换为 vb.net 日期?

How to cast DB2 Timestamp to vb.net date?

当我使用 DB2 SQL 填充我的 vb.net gridview 时,它显示 DB2 时间戳为:

2020-08-25-14.59.11.000000

^ 将其转换为 vb.net 日期的最简洁方法是什么? FWIW,这有效:

Dim mydate As Date = CDate("2020-08-25 14:59:11.000000")

但是,14:59:11 中的冒号不存在,我正在使用的字符串有 14.59.11

非常感谢任何帮助。

编辑: 按照要求, screenshot of what data looks like when queried in AS400

编辑2:

Dim strSelect As String = "" &
"SELECT SUBMITTIME " &
"FROM MYTABLE " &
"WHERE EFYEAR=" & Now.Year & " AND EFMONTH=" & Now.Month

Dim dt As DataTable = SQL.Get_DataTable(strSelect)
grv.DataSource = dt
grv.DataBind()

Get_DataTable 只是使用 OleDbConnection、OleDbCommand、OleDbDataAdapter 等来填充数据表。

你不能将某物转换为它不是的类型。转换的全部要点是您不更改对象,而是更改访问对象的方式。如果您要更改对象,那么它是一次转换,而不是强制转换。

如果您想转换某些内容,那么第一步是了解您要转换的内容。如果您要从已知格式的 String 转换为 DateTime,那么您将使用 Date.ParseExact.

如果数据在 DataTable 中,添加具有适当数据类型的新列,在循环中进行转换,然后,如果合适,删除原始列。

myDataTable.Columns.Add("DataColumn", GetType(Date))

For Each row As DataRow In myDataTable.Rows
    row("DateColumn") = Date.ParseExact(CStr(row("TextColumn")), "yyyy-MM-dd-HH.mm.ss.ffffff", Nothing)
Next

myDataTable.Columns.Remove(myDataTable.Columns("TextColumn"))