Memahami Had Ketepatan C# DateTime.Now
Isunya:
Mengapakah DateTime.Now
/UtcNow
sering mengembalikan cap masa yang kelihatan tidak tepat, sering menunjukkan nilai yang sama dalam selang masa berbilang milisaat? Adakah ketepatan DateTime.Now
ditakrifkan secara eksplisit?
Jawapannya:
DateTime
tidak bertujuan untuk pengukuran masa ketepatan tinggi. Fungsi terasnya ialah perwakilan tarikh dan masa serta manipulasi untuk aplikasi biasa seperti antara muka pengguna dan pengiraan berasaskan tarikh.
Butiran Teknikal:
Ketepatan dan ketepatan adalah berbeza. Jam mungkin tepat (konsisten dalam mengukur selang) tetapi tidak tepat (dimatikan daripada sumber masa rujukan). Memberikan ketepatan mikrosaat dalam DateTime
adalah mengelirukan, kerana kebanyakan sistem kekurangan akses kepada isyarat masa yang cukup tepat.
Implikasi:
Ketidaktepatan yang wujud DateTime.Now
menjadikannya tidak sesuai untuk senario yang menuntut pemasaan ketepatan tinggi. Untuk tugasan sedemikian, kelas Stopwatch
jauh lebih unggul. DateTime
menawarkan ketepatan yang mencukupi untuk operasi tarikh dan masa biasa seperti memaparkan masa semasa atau mengira perbezaan masa.
Contoh Ilustrasi:
Kod ini menyerlahkan perbezaan antara DateTime.Now
dan Stopwatch
dalam ukuran masa:
<code class="language-csharp">using System; using System.Diagnostics; public class Program { public static void Main(string[] args) { var stopwatch = new Stopwatch(); stopwatch.Start(); for (int i = 0; i < 1000; i++) { Console.WriteLine($"DateTime.Now: {DateTime.Now.Millisecond}, Stopwatch: {stopwatch.ElapsedMilliseconds}"); // Add a small delay (adjust as needed) System.Threading.Thread.Sleep(1); } stopwatch.Stop(); } }</code>
Ini menunjukkan bahawa DateTime.Now
mungkin mengeluarkan nilai milisaat yang sama berulang kali dalam tempoh yang singkat, manakala Stopwatch
menawarkan ukuran masa berlalu yang lebih berbutir.
Atas ialah kandungan terperinci Mengapakah Ketepatan C# DateTime.Now Lebih Rendah Daripada Jangkaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!