• 締切済み

C# 時刻 表示

恐れ入ります。 C#で現在時刻の表示方法をお教えください。 通常、*時○分△秒という表示ですが、今回は秒の形式は△.△という形で秒の単位を小数点1桁まで表示したいのです(時間そのものの正確さを要求しているわけではありません。1秒以内に発生する動作の時間を区別したいためです)。 秒までならば、 DateTime.Now.ToString("hh:mm:ss")なる形で得られますので、これを真似して DateTime.Now.ToString("hh:mm:ss.s")としても表示上は確かに秒の小数点まで出力されますが、 Thread.Sleep(100) というメソッドをfor文の中に入れて、0.1秒間隔で表示させることによって確認しようとしましたが、 0.1秒きざみでの時刻表示は得られませんでした。 Thread.Sleep(100) は特に問題ないので、 DateTime.Now.ToString("hh:mm:ss.s") がうまく働いていないためと思われます。 .NETのライブラリも確認したのですが、探し方が悪いためか情報を得ることができませんでした。 上記、質問お分かりになる方はよろしくお願いします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 私は、あまり詳しくありませんが、 DateTime.Now.ToString("hh:mm:ss.s")    ↓ DateTime.Now.ToString("hh:mm:ss.0") または、"hh:mm:ss.00" という表記にすることは出来るのですが、しかし、Now 自体に、秒以下の表示を試したことがありません。ToString の書式表示として、秒以下が、s.00 となるというだけです。 いずれにしても、表示の際には、Timer コントロールを使って、更新していなければ、0.1秒単位の更新はないと思います。それに、秒以下の表示が出来ても、単に、めまぐるしく変わるだけで、画面での肉眼での目視はできないと思います。

hiroshi0915
質問者

お礼

ありがとうございました。 Timerでないとできないのかもしれません。 画面表示ではなく、あるイベントが発生した時刻を記録しておきたかったのです。ご指摘のTimerを使うことにより秒以下は可能と思うのですが、この場合、相対時刻(例えばプログラム起動から)となるように思え、絶対時刻としての若干の誤差は認めてサーバの時刻を記録しておきたいと思っていました。 親切なメールありがとうございました。 今後も何かありましたらまたよろしくお願いします。

関連するQ&A