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