将unix时间转换为DateTime

tmi*_*hty 2 unix vb.net datetime

我想将Unix时间戳转换为VB.NET DateTime.

我试过了

Public Function UnixToDateTime(ByVal strUnixTime As String) As DateTime

    Dim nTimestamp As Double = strUnixTime
    Dim nDateTime As System.DateTime = New System.DateTime(1970, 1, 1, 0, 0, 0, 0)
    nDateTime.AddSeconds(nTimestamp)

    Return nDateTime

End Function
Run Code Online (Sandbox Code Playgroud)

但是当我喂它

strUnixTime = "1401093810"
Run Code Online (Sandbox Code Playgroud)

我得到了返回值

nDateTime = #1/1/1970#
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?谢谢

Hei*_*nzi 7

这行代码

nDateTime.AddSeconds(nTimestamp)
Run Code Online (Sandbox Code Playgroud)

没有改变nDateTime.这就像是a + 3通过它自己写一行 - a不会被修改.

但是,它会返回一个包含递增值的新DateTime对象.那么,你真正想写的是:

nDateTime = nDateTime.AddSeconds(nTimestamp)
Run Code Online (Sandbox Code Playgroud)

PS:看来您的代码没有使用Option Strict On.强烈建议您激活Option Strict并使用显式转换而不是隐式转换.