【问题标题】:How to get current timestamp [duplicate]如何获取当前时间戳[重复]
【发布时间】:2013-01-12 14:15:42
【问题描述】:

我正在连接到一个 API,其中一个参数是 Long (13 位),用于保存 VB.Net 中的当前 timestamp,它表示从 0:00:00 01.01.1970 in GMT 传递的毫秒数,直到 当前时间。

格式应该是这样1290932238757

我试过这个语法:

DirectCast((Datetime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds, Int64)

但输出是:

01/12/2013 02:06:24

【问题讨论】:

    标签: vb.net datetime


    【解决方案1】:

    如果我理解正确,这行得通吗?

    Dim milliseconds = CLng(DateTime.UtcNow.Subtract(New DateTime(1970, 1, 1))
                                                           .TotalMilliseconds)
    

    我在示例中使用了DateTime.UtcNow,但您可以使用DateTime.Now,具体取决于您计划如何使用数据。有关差异的更多信息,请参阅this thread

    【讨论】:

    • 我无法理解它是如何工作的:我认为它应该是 CLng(DateTime.UtcNow.Subtract(New DateTime(1970, 1, 1)).ToUniversalTime.TotalMilliseconds)。无论如何,此方法不会返回正确的时间戳。使用@keyboardP 调用,它会返回正确的时间戳,但是由于它比较了 UtcNow 和 1/1/1970(可以识别时区),这怎么可能呢?
    • 我终于明白了。 new Date(1,1,1970) 创建一个不知道时区的日期。 .ToUniversalTime 方法会像在 localTime 中一样改变它。最好的方法应该是创建日期时区感知:New DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc)
    猜你喜欢
    • 2011-02-16
    • 2015-06-18
    • 2021-12-04
    • 2018-01-05
    • 2011-12-26
    • 2016-04-23
    • 2015-09-22
    • 2017-02-15
    相关资源
    最近更新 更多