这个方法也可以试试:
Dim oaDate As Double = 45568.77
Dim days As Integer = CInt(Math.Floor(oaDate))
Dim hoursAndMinutes As Double = oaDate - days
' 创建一个基准日期,OA日期的0对应于1899年12月30日
Dim baseDate As New DateTime(1899, 12, 30)
Dim dateResult As DateTime = baseDate.AddDays(days)
' 将小时和分钟转换为TimeSpan
Dim hours As Integer = CInt(Math.Floor(hoursAndMinutes))
Dim minutes As Integer = CInt(((hoursAndMinutes - hours) * 60))
Dim timeResult As New TimeSpan(hours, minutes, 0)
' 将时间添加到日期
Dim result As DateTime = dateResult.Add(timeResult)
MessageBox.Show( "日期为:" & result.ToString("yyyy-MM-dd HH:mm:ss"))