実際の時間のタイムスタンプをミリ秒の精度で正確に作成するにはどうすればよいでしょうか?
16.4.2013 9:48:00:123 のような日付が必要です。これは可能ですか? 1 秒あたり 10 回値をサンプリングするアプリケーションがあり、それをグラフに表示する必要があります。
ベストアンサー1
実際の時間のタイムスタンプをミリ秒の精度で正確に作成するにはどうすればよいでしょうか?
ミリ秒の精度を意味しているのではないかと思います。DateTime
精度は高いのですが、精度という点では粗いです。一般的に言えば、それはできません。通常、システムクロック(DateTime.Now
データの取得元)の解像度は 10 ~ 15 ミリ秒程度です。Eric Lippert の精度と正確さに関するブログ投稿詳細については。
これよりも正確なタイミングが必要な場合は、NTP クライアントの使用を検討してください。
ただし、ここでミリ秒単位の精度が本当に必要かどうかは明らかではありません。正確なタイミングを気にせず、サンプルを正しい順序で「かなり良い」精度で表示したいだけであれば、システム クロックで十分です。ただし、夏時間への移行などのタイム ゾーンの問題を回避するために、 ではDateTime.UtcNow
なくを使用することをお勧めします。DateTime.Now
質問が実際にはミリ秒精度の文字列に変換することだけであればDateTime
、以下を使用することをお勧めします。
string timestamp = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.fff",
CultureInfo.InvariantCulture);
(あなたのサンプルとは異なり、これは並べ替え可能であり、「月/日/年」を意味するのか「日/月/年」を意味するのかについて混乱が生じる可能性が低いことに注意してください。)