Как точно построить временную отметку реального времени с точностью до миллисекунд?
Я подозреваю, что вы имеете в виду точность в миллисекундах . DateTime
имеет много точности, но довольно груб с точки зрения точности. Вообще говоря, вы не можете. Обычно системные часы (откуда они DateTime.Now
получают данные) имеют разрешение около 10-15 мс. См. Блог Эрика Липперта о точности и точности для более подробной информации.
Если вам нужно более точное время, чем это, вы можете изучить использование клиента NTP.
Однако, не ясно, что вам действительно нужна точность в миллисекундах. Если вас не интересует точное время - вы просто хотите показать сэмплы в правильном порядке с «довольно хорошей» точностью, тогда системные часы должны быть в порядке. Я бы посоветовал вам использовать, DateTime.UtcNow
а не DateTime.Now
, чтобы избежать проблем с часовыми поясами при переходе на летнее время и т. Д.
Если ваш вопрос на самом деле только вокруг преобразования DateTime
в строку с точностью до миллисекунды, я предложил бы использовать:
string timestamp = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.fff",
CultureInfo.InvariantCulture);
(Обратите внимание, что в отличие от вашего образца, это сортируется и с меньшей вероятностью может привести к путанице относительно того, будет ли это «месяц / день / год» или «день / месяц / год».)