将unix时间转换为DateTime

时间:2014-09-13 22:39:28

标签: vb.net unix 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

但是当我喂它时

strUnixTime = "1401093810"

我得到了返回值

nDateTime = #1/1/1970#

我做错了什么? 谢谢

1 个答案:

答案 0 :(得分:7)

这行代码

nDateTime.AddSeconds(nTimestamp)

修改nDateTime。这就像在一行上写a + 3一样 - a不会被修改。

然而,返回包含递增值的新DateTime对象。所以,你真正想写的是:

nDateTime = nDateTime.AddSeconds(nTimestamp)

PS:您的代码似乎没有使用Option Strict On。强烈建议您激活Option Strict并使用显式而非隐式转换。