你如何在VB.Net中以毫秒(长)获得当前时间?

时间:2010-12-08 09:22:25

标签: vb.net time

我在VB.NET中寻找与Java System.currentTimeMilli()相当的东西。

打电话的方法是什么?我知道Datetime.Now,但不知道实际转换为长毫秒。


有关我的具体需求的更多详情:

我需要管理登录过期。所以最有可能在我登录时,我会设置一个“expiration_time_milli”,等于当前时间+超时值。然后,如果我想检查我的登录是否有效,我会检查“expiration_time_milli”是否仍然优于当前时间。

8 个答案:

答案 0 :(得分:12)

获取当前时间和时间原点之间的差异,使用TotalMilliseconds属性获取时间跨度(以毫秒为单位),并将其转换为long。

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

答案 1 :(得分:5)

您可以使用

(DateTime.Now-new DateTime(1970,1,1)).TotalMilliseconds

顺便说一句,只是通过你的问题猜测你可能对你更有用的东西

DateTime.UtcNow

答案 2 :(得分:4)

有关信息,我的个人案例是用另一种方法修复的,没有得到与System.currentTimeMillis()完全相同的值:

Dim loginExpirationDate As Date

'...

'Checking code:
If (loginExpirationDate < DateTime.Now) Then
    reconnect()
End If

'update the expiration date
loginExpirationDate = DateTime.Now.AddMilliseconds(timeoutMilli)

答案 3 :(得分:3)

看到此处涉及DateTime.Now的所有答案有点令人担忧,它返回 local 时间(如“在系统默认时区中”)-而{{1} }返回自Unix时代(1970-01-01T00:00:00Z)以来的毫秒数。此处的所有答案可能应该参考System.currentTimeMillis()

幸运的是,在问了这个问题后,通过DateTime.UtcNow提供了一种更为简单的方法。所以您只需要:

DateTimeOffset.ToUnixTimeMilliseconds()

答案 4 :(得分:1)

如果您只查找唯一编号,也可以使用此值。 的 DateTime.Now.Ticks

查看详情 http://msdn.microsoft.com/en-us/library/system.datetime.ticks(v=vs.110).aspx

答案 5 :(得分:0)

    Dim myTime As DateTime = DateTime.Now
    MessageBox.Show(myTime.Millisecond)

答案 6 :(得分:0)

简单地输入DateTime.Now.Ticks / 10000

这是对所提出的简单问题的最直接的答案,并且假设需要测量经过时间(因为它从Jan开始运行),它是Java System.currentTimeMillis()的直接替代品1,0001,而Java从1970年1月1日开始运行。

注意:

  • DateTime.Now.Ticks是每毫秒10,000滴答,但测试表明它的分辨率大约为1ms。
  • Nb:DateTime.Now.Millisecond只是自上次翻转以来的毫秒数,因此在大多数时间中没有用 测量。

答案 7 :(得分:-1)

以毫秒为单位获取当前日期和时间

Dim Time1 as String = DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fff tt")*

.fff tt 将为您提供当前日期和时间的毫秒数。