метка времени unix с точностью до миллисекунды в VB6? - PullRequest
0 голосов
/ 05 февраля 2019

как я могу получить метку времени Unix с точностью до миллисекунды (или больше?) В VB6?

(и получить метку с точностью до секунды и умножить ее на 1000 не является приемлемым решением, потому что мне нужновторая точность)

Редактировать: Нет, Как получить истекшее время в миллисекундах не является дубликатом этого вопроса, мне нужно получить метку времени Unix с 1970-01-01 00:00: 00, в то время как этот вопрос просто должен знать, сколько времени потребовалось для выполнения операций, и ответы используют GetTickCount (), который считает миллисекунды с момента перезагрузки системы , а не с 1970 года (и даже если я теоретически работална компьютере, который был в последний раз перезагружен в 1970 году, а это не так, максимальный лимит GetTickCount () составляет 49,7 дня, и я не думаю, что такая старая система все равно будет работать под управлением Windows NT, то есть не будетдоступ к WinAPI GetTickCount ())

Edit2: у меня пока нет решения, но, вероятно, возможно использовать GetSystemTimeAsFileTime (), чтобы получить числа, ноя не знаю, как использовать 2x 32-битные целые числа в качестве 64-битного целого числа в VB6 для получения числа ..

также здесь приведен код для запуска GetSystemTime () в VB6 (благодаря 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)

1 Ответ

0 голосов
/ 07 февраля 2019

Основываясь на множестве комментариев, вот простое решение для будущих читателей этого вопроса:

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, чтобы получить миллисекунды.Результат представляется точным в зависимости от количества веб-сайтов, включая один, указанный в коде.

...