web-dev-qa-db-fra.com

Trouver du temps en millisecondes avec PowerShell?

Comment puis-je trouver le temps en millisecondes à l'aide de PowerShell?

18
Mulesoft Developer

Dans PowerShell, vous pouvez convertir une valeur de temps en un intervalle de temps et appeler la méthode TotalMilliseconds :

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

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

Vous pouvez obtenir la date complète en millisecondes avec les éléments suivants:

Get-Date -Format HH:mm:ss.fff
29
freakydinde

La question suggère de trouver un datetime donné en millisecondes (temps Microsoft Epoch). Ceci est facilement résolu avec:

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

ou

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

Pour convertir cela en temps Unix Epoch en secondes:

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

Où 11644473600 est le nombre de secondes écoulées entre l'époque Microsoft (1er janvier 1601 après JC (C.E.)) et l'époque Unix (1er janvier 1970, 12h00 UTC/GMT)

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

5
Brian McMahon

Si vous avez besoin d'une résolution (sous-) milliseconde, consultez System.Diagnostics.Stopwatch .

$stopwatch = New-Object System.Diagnostics.Stopwatch
$stopwatch.Start()
$stopwatch.Stop()
$stopwatch
3
OldFart