将Unix时间转换为DateTime

3
我可以帮您将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

但是当我输入数据的时候
strUnixTime = "1401093810"

我收到了返回值。
nDateTime = #1/1/1970#

我做错了什么? 谢谢

1个回答

10

这行代码

nDateTime.AddSeconds(nTimestamp)

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

然而,它会返回一个新的DateTime对象,其中包含递增的值。所以,你实际想要编写的是:

nDateTime = nDateTime.AddSeconds(nTimestamp)

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


谢谢!现在我已经得到了日期,但是你是否知道如何获取DateTime?目前时间还没有:nDateTime = #4/5/2006# - tmighty
它并没有丢失!DateTime/Date变量始终包含时间组件。只是如果时间为00:00调试器可能不会显示时间组件。 - Heinzi
addseconds 返回日期对象而不是日期时间对象。我想知道是否有任何区别。 - user4951
@user4951:没有。Date是VB中DateTime的同义词。 - Heinzi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接