Unix时间戳和在VB6精确到毫秒?

问题描述 投票:0回答:1

我怎样才能得到一个Unix时间戳和毫秒(或更多?)精度VB6?

(和得到一个秒精度邮票和乘以1000它不是可接受的解决方案,因为我需要亚秒精度)

编辑:没有,How to get time elapsed in milliseconds是不是这个问题的副本,我需要得到Unix时间戳自1970-01-01 00:00:00,而这个问题只需要知道多少花费的时间执行操作,并且答案使用的GetTickCount(),其对毫秒,因为重新启动系统,而不是自1970年以来(即使我从理论上说最后一次重新启动在1970年的计算机上,这我不上运行,GetTickCount的()有49.7天,最大限制,我不认为这样的旧制度将反正运行Windows NT,这意味着它不会有WinAPI的的GetTickCount的访问())

EDIT2:我没有一个解决办法,但它可能可以使用GetSystemTimeAsFileTime()得到的数字,但我不知道如何使用2X 32位整数作为64位整数VB6导出数..

另外这里的代码运行在VB6 GetSystemTime()(感谢danaseaman

Private Type SYSTEMTIME
   wYear                As Integer
   wMonth               As Integer
   wDayOfWeek           As Integer
   wDay                 As Integer
   wHour                As Integer
   wMinute              As Integer
   wSecond              As Integer
   wMilliseconds        As Integer
End Type

Private Declare Sub GetSystemTime Lib "KERNEL32.dll" (lpSystemTime As SYSTEMTIME)
vb6 unix-timestamp
1个回答
1
投票

基于许多评论,这里是这个问题的未来的读者一个简单的解决方案:

Private Sub Form_Load()
   'https://www.freeformatter.com/epoch-timestamp-to-date-converter.html

   Dim epoch As Currency

   epoch = (DateDiff("s", "1/1/1970", Date) + Timer) * 1000

   Debug.Print Round(epoch)
End Sub

我们的想法是,计算的秒数至午夜,午夜加分数秒,乘以1000得到毫秒。结果出现根据多个的网站,包括在代码中引用的一个是准确的。

© www.soinside.com 2019 - 2024. All rights reserved.