Saya membuat program di mana saya perlu mendapatkan waktu dalam milidetik. Waktu, maksud saya angka yang tidak pernah sama dengan dirinya sendiri, dan selalu 1000 angka lebih besar dari sedetik yang lalu. Saya sudah mencoba mengubah DateTime.Now
ke TimeSpan
dan mendapatkan TotalMilliseconds
dari itu ... tapi saya pernah mendengar itu tidak sepenuhnya akurat.
Adakah cara yang lebih mudah untuk melakukan ini?
c#
datetime
milliseconds
time-precision
Kesatuan
sumber
sumber
Jawaban:
Gunakan
Stopwatch
kelas.Ada beberapa info bagus tentang penerapannya di sini:
Tes Kinerja: Pengukuran Jalankan Waktu Yang Tepat dengan System.Diagnostics.Stopwatch
sumber
Inilah sebenarnya bagaimana berbagai metode konversi Unix diimplementasikan di
DateTimeOffset
kelas (.NET Framework 4.6+, .NET Standard 1.3+):sumber
DateTime.Now
tidak sering "diperbarui"), tentu saja gunakandecimal milliseconds = DateTime.Now.Ticks / (decimal)TimeSpan.TicksPerMillisecond;
saja.long
tipe data di depan milidetik. Menggunakanint
tentu akan meluap.The
DateTime.Ticks
properti mendapat jumlah kutu yang mewakili tanggal dan waktu.10.000 Kutu adalah milidetik (10.000.000 kutu per detik).
sumber
A single tick represents one hundred nanoseconds or one ten-millionth of a second. There are 10,000 ticks in a millisecond.
Saya menggunakan kelas berikut. Saya menemukannya di Internet sekali, dipostulatkan menjadi yang terbaik SEKARANG () .
Sumber tidak dikenal.
sumber
Anda dapat mencoba
QueryPerformanceCounter
metode asli. Lihat http://www.pinvoke.net/default.aspx/kernel32/QueryPerformanceCounter.html untuk informasi lebih lanjut. Inilah yangStopwatch
digunakan kelas.Lihat Bagaimana cara mendapatkan cap waktu presisi kutu di .NET / C #? untuk informasi lebih lanjut.
Stopwatch.GetTimestamp()
memberikan akses ke metode ini:sumber
Stopwatch.GetTimestamp()
sebenarnya menyediakan akses ke metode itu.Saya menggunakan DateTime.Now.TimeOfDay.TotalMilliseconds (untuk hari ini), semoga ini membantu Anda juga.
sumber
Gunakan
System.DateTime.Now.ToUniversalTime()
. Yang menempatkan bacaan Anda dalam format milidetik berbasis referensi yang dikenal yang benar-benar menghilangkan perubahan hari, dll.sumber