Найти время в миллисекундах с помощью PowerShell? - PullRequest
12 голосов
/ 30 января 2012

Как узнать время в миллисекундах с помощью PowerShell?

Ответы [ 4 ]

28 голосов
/ 15 июля 2014

Вы можете получить полную дату в миллисекундах со следующим:

Get-Date -Format HH:mm:ss.fff
5 голосов
/ 06 июля 2017

Вопрос предлагает найти заданную дату и время в миллисекундах (время эпохи Microsoft). Это легко решается с помощью:

[Math]::Round((Get-Date).ToFileTime()/10000)

или

[Math]::Round((Get-Date).ToFileTimeUTC()/10000)

Чтобы преобразовать это время эпохи Unix в секундах:

[Math]::Round((Get-Date).ToFileTime() / 10000000 - 11644473600)

Где 11644473600 - количество прошедших секунд между эпохой Microsoft (1 января 1601 г. н.э. (C.E.)) и эпохой Unix (1 января 1970 г., 12:00 UTC / GMT)

https://msdn.microsoft.com/en-us/library/system.datetime.tofiletime(v=vs.110).aspx

3 голосов
/ 30 января 2012

Если вам нужно (суб) миллисекундное разрешение, посмотрите System.Diagnostics.Stopwatch .

$stopwatch = New-Object System.Diagnostics.Stopwatch
$stopwatch.Start()
$stopwatch.Stop()
$stopwatch
3 голосов
/ 30 января 2012

В PowerShell вы можете преобразовать значение времени в промежуток времени и вызвать метод TotalMilliseconds :

([TimeSpan]"00:05:00").TotalMilliseconds # Returns 300000

([TimeSpan] (Get-Date).ToShortTimeString()).TotalMilliseconds # Returns total milliseconds from 00:00:00 till now
...