Bagaimana saya bisa membuat cap waktu yang sebenarnya dengan ketepatan milidetik?
Saya menduga maksud Anda akurasi milidetik . DateTime
memiliki banyak presisi, tetapi cukup kasar dalam hal akurasi. Secara umum, Anda tidak bisa. Biasanya jam sistem (yang merupakan tempat pengambilan DateTime.Now
datanya) memiliki resolusi sekitar 10-15 ms. Lihat posting blog Eric Lippert tentang presisi dan akurasi untuk detail lebih lanjut.
Jika Anda membutuhkan pengaturan waktu yang lebih akurat dari ini, Anda mungkin ingin melihat ke dalam menggunakan klien NTP.
Namun, tidak jelas bahwa Anda benar-benar membutuhkan akurasi milidetik di sini. Jika Anda tidak peduli dengan waktu yang tepat - Anda hanya ingin menunjukkan sampel dalam urutan yang benar, dengan akurasi "cukup bagus", maka jam sistem harus baik-baik saja. Saya menyarankan Anda untuk menggunakan DateTime.UtcNow
daripada DateTime.Now
untuk menghindari masalah zona waktu di sekitar transisi musim panas, dll.
Jika pertanyaan Anda sebenarnya hanya sekitar mengkonversi DateTime
ke string dengan presisi milidetik, saya sarankan menggunakan:
string timestamp = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.fff",
CultureInfo.InvariantCulture);
(Perhatikan bahwa tidak seperti sampel Anda, ini mudah disortir dan cenderung menyebabkan kebingungan apakah itu dimaksudkan sebagai "bulan / hari / tahun" atau "hari / bulan / tahun".)