Vb.net 如何获取当前时间戳

Vb.net 如何获取当前时间戳,vb.net,datetime,Vb.net,Datetime,我正在连接一个API,其中一个参数很长(13位),用于保存VB.Net中当前的时间戳,它表示从GMT中的0:00:00 01.01.1970到 当前时间 格式应如下所示1290932238757 我试过这个syntex: DirectCast((Datetime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds, Int64) 但结果是: 01/12/2013 02:06:24 如果我理解正确,这有用吗 Dim milliseconds =

我正在连接一个API,其中一个参数很长(13位),用于保存VB.Net中当前的
时间戳
,它表示从GMT中的
0:00:00 01.01.1970到
当前时间

格式应如下所示
1290932238757

我试过这个syntex:

DirectCast((Datetime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds, Int64)
但结果是:

01/12/2013 02:06:24

如果我理解正确,这有用吗

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

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

我不明白它是如何工作的:我认为它应该是CLng(DateTime.UtcNow.Subtract(newdatetime(1970,1,1)).ToUniversalTime.total毫秒)。无论如何,此方法不会返回正确的时间戳。使用@keyboardP call,它会返回正确的时间戳,但由于它将UtcNow和1/1/1970(时区感知)进行比较,这怎么可能呢?我终于明白了。
新日期(1,11970)
创建了一个不知道时区的日期。ToUniversalTime方法将其转换为localTime。最好的方法是创建日期时区感知:
newdatetime(1970,1,1,0,0,0,0,0,DateTimeKind.Utc)