2012-01-30 37 views

Trả lời

5

Trong PowerShell bạn có thể cast một giá trị thời gian để một khoảng thời gian và gọi totalmilliseconds phương pháp:

([timespan]"00:05:00").TotalMilliseconds # return 300000 

([timespan] (get-date).ToShortTimeString()).TotalMilliseconds # return total milliseconds from 00:00:00 to now 
+0

bạn có thể giới thiệu cho tôi bất kỳ cuốn sách hay nào để học tập kịch bản PowerShell không? Tôi thực sự cảm ơn –

+1

bắt đầu đọc cuốn sách trực tuyến này: http://powershell.com/cs/blogs/ebook/ –

+0

Nếu bạn cần truyền một giá trị ban đầu với độ chính xác phụ thứ hai, bạn có thể sử dụng như sau: '([ TimeSpan] :: FromSeconds (0.9780526)) .TotalMinutes # return 0.0163' –

3

Nếu bạn cần (phụ) độ phân giải phần nghìn giây, hãy kiểm tra System.Diagnostics.Stopwatch.

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

bạn có thể nhận được cập nhật đầy đủ với millseconds như sau:

Get-Date -Format HH:mm:ss.fff 
+0

cảm ơn bạn đã chỉnh sửa, làm cách nào để thiết lập nền màu xám? – freakydinde

+1

Ông đã sử dụng markdown cho mã. Nó bắt đầu và kết thúc bằng một dấu kiểm. ' –

3

Câu hỏi đặt ra cho thấy việc tìm kiếm một datetime được đưa ra trong mili giây (Microsoft thời gian kỷ nguyên). Đây có thể dễ dàng giải quyết với:

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

hoặc

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

Để chuyển đổi này để thời gian kỷ nguyên Unix trong vài giây:

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

đâu 11644473600 là số giây trôi qua giữa thời đại của Microsoft (Ngày 1 tháng 1 năm 1601 sau Công Nguyên (CE)) và kỷ nguyên Unix (ngày 1 tháng 1 năm 1970, 12 giờ sáng UTC/GMT)

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

+0

Microsoft đếm 100 nano giây kể từ thời đại của nó, điều này cần phải được chuyển đổi thành mili giây. –

Các vấn đề liên quan