Gerçek zamanlı zaman damgasını milisaniye hassasiyetle tam olarak nasıl oluşturabilirim?
Milisaniye doğruluk demek istediğinizden şüpheleniyorum . DateTimeçok hassastır, ancak doğruluk açısından oldukça kabadır. Genel olarak konuşamazsınız. Genellikle sistem saatinin ( DateTime.Nowverilerini aldığı yer) yaklaşık 10-15 ms'lik bir çözünürlüğe sahiptir. Daha fazla ayrıntı için hassasiyet ve doğruluk hakkında Eric Lippert'in blog gönderisine bakın.
Bundan daha doğru bir zamanlamaya ihtiyacınız varsa, bir NTP istemcisi kullanmaya bakmak isteyebilirsiniz.
Bununla birlikte, burada gerçekten milisaniye hassasiyete ihtiyacınız olduğu açık değildir. Kesin zamanlamayı umursamıyorsanız - sadece örnekleri "oldukça iyi" doğrulukta doğru sırada göstermek istiyorsanız, sistem saati iyi olmalıdır. Kullandığım öneriyorum DateTime.UtcNowziyade DateTime.Nowyaz saati geçişleri vb etrafında saat dilimi sorunları önlemek için, gerçi
Sorunuz aslındaDateTime bir milisaniye hassasiyetle bir dizeye dönüştürmek etrafında ise , ben kullanmanızı öneririz:
string timestamp = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.fff",
CultureInfo.InvariantCulture);
(Örneğinizin aksine, bunun sıralanabilir olduğunu ve "ay / gün / yıl" veya "gün / ay / yıl" olması gerektiği konusunda karışıklığa neden olma olasılığının düşük olduğunu unutmayın.)