[C#] TimeSpanのToStringは癖がある。

C#やVB.NETで使用される時間間隔を扱うクラスTimeSpanは便利だが、文字列として出力する際のToString()に癖がある。
DateTimeクラスと同じように、カスタム日時書式文字列を使いたいところだが微妙に違う。

まず、下記のように適当にTimeSpanを用意して

標準の時間間隔書式文字列

標準の時間間隔書式文字列は、c, g, G の3パターンがある。

普通に表示させるだけであれば、上記を切り分ける。

カスタム時間間隔書式文字列

カスタム時間間隔書式文字列は自由に表記できるが、通常慣れしたんだDateTimeとは勝手が違う。

書式文字以外はすべて\を直前に置くか ‘ (シングルクォーテーション) でくくる。
HHでなくhhだったり、マイナスは標準方式だと出てくれるが、カスタムだと自前で引っ付ける必要があるなど・・・。

毎回、シングルクォーテーションで括るのがめんどうなので、どこかのクラスに拡張を作って

こんな風に呼び出してもいいかも。

 

 

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">