DateTime.Now
: Ketepatan lwn. KetepatanUjian unit baru-baru ini menyerlahkan tingkah laku yang tidak dijangka dengan DateTime.UtcNow
. Panggilan berturut-turut dalam selang waktu yang singkat menghasilkan keputusan yang sama, bertentangan dengan jangkaan kebutiran peringkat milisaat. Ini menimbulkan persoalan mengenai ketepatan DateTime.Now
. Walaupun Stopwatch
menawarkan ketepatan yang lebih baik untuk pemasaan, memahami batasan DateTime.Now
adalah penting. Adakah ketepatannya didokumenkan secara rasmi (mis., 50ms)? Mengapakah ia kurang tepat berbanding kebanyakan jam CPU?
Perbezaan: Ketepatan dan Ketepatan
Adalah penting untuk membezakan antara ketepatan dan ketepatan. Jam yang tepat secara konsisten melaporkan perbezaan masa dengan resolusi tertentu; jam yang tepat menjajarkan secara konsisten dengan sumber masa luaran.
DateTime.Now
menyajikan perwakilan tarikh dan masa tujuan umum—memaparkan masa semasa, penjadualan dan mengira perbezaan tarikh. Penjagaan masa berketepatan tinggi bukanlah fungsi utamanya. Kebanyakan komputer kekurangan akses kepada rujukan masa luaran yang tepat, menjadikan ketepatan dan ketepatan yang tinggi pada masa yang sama tidak dapat dicapai untuk DateTime.Now
.
Ringkasnya
KetepatanDateTime.Now
yang lebih rendah menghalang pelaporan ketepatan palsu. Reka bentuknya mengutamakan perwakilan tarikh dan masa yang tepat dalam kekangan sistem biasa. Untuk pemasaan yang tepat, Stopwatch
kekal sebagai pilihan pilihan.
Atas ialah kandungan terperinci Adakah DateTime.Now Precision Didokumentasikan Secara Rasmi, dan Mengapa Ia Terhad?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!