我在VB.NET中寻找与Java System.currentTimeMilli()
相当的东西。
打电话的方法是什么?我知道Datetime.Now,但不知道实际转换为长毫秒。
有关我的具体需求的更多详情:
我需要管理登录过期。所以最有可能在我登录时,我会设置一个“expiration_time_milli”,等于当前时间+超时值。然后,如果我想检查我的登录是否有效,我会检查“expiration_time_milli”是否仍然优于当前时间。
答案 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.Millisecond
只是自上次翻转以来的毫秒数,因此在大多数时间中没有用
测量。答案 7 :(得分:-1)
以毫秒为单位获取当前日期和时间
Dim Time1 as String = DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fff tt")*
.fff tt
将为您提供当前日期和时间的毫秒数。