C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のソート可能(s)書式指定子の使い方を解説

C#におけるソート可能(Sortable)標準書式指定子「s」は、日付と時刻を表すカスタム書式文字列に変換される標準書式指定子です。この書式はISO 8601に準拠した形式で出力されるため、文字列として比較・並べ替え(ソート)しても、時系列どおりの正しい順序が保たれるという特徴があります。

対応するカスタム書式文字列

「s」書式指定子によって生成される書式文字列は、DateTimeFormatInfo.SortableDateTimePatternプロパティで定義されています。実際に使用されるカスタム書式文字列は次のとおりです。

yyyy'-'MM'-'dd'T'HH':'mm':'ss

このパターンでは、年(yyyy)、月(MM)、日(dd)がハイフンで連結され、区切り文字「T」を挟んで時(HH)、分(mm)、秒(ss)がコロンで連結されます。

サンプルコード

using System;
class Demo {
   static void Main() {
      DateTime date = new DateTime(2018, 9, 5, 2, 12, 40);
      Console.WriteLine(date.ToString("s"));
   }
}

実行結果

2018-09-05T02:12:40

ポイント

「s」書式指定子の出力にはタイムゾーン情報が含まれません。ローカル時刻をそのまま固定長の文字列として整形するため、ログファイルやデータベースへの保存、日時による文字列ソートなどに適しています。タイムゾーン情報が必要な場合は、「o」(ラウンドトリップ)や「u」(世界共通)などの書式指定子の利用を検討してください。

  1. C#のラウンドトリップ(R)書式指定子とは?使い方を解説

    ラウンドトリップ(R)書式指定子とはC#のラウンドトリップ(R)書式指定子は、Single、Double、BigInteger の各型でサポートされている標準の数値書式です。この書式指定子を使用すると、数値を文字列に変換した後、その文字列を再度解析(パース)した際に、必ず元と同じ数値に復元されることが保証されます。つまり、変換による精度の損失がないことが保証されるため、シリアライズやログ出力など、値を厳密に保持したい場面で役立ちます。基本的な使い方まず、double型の変数を用意します。double doubleVal = 0.91234582637;次に、ToString()メソッドを呼び出

  2. 【C#】日付形式の妥当性を検証する方法|DateTime.TryParseExactの使い方

    C#で日付文字列が正しい書式になっているかどうかを確認したい場合、DateTime.TryParseExactメソッドを使用するのが最も簡単で確実な方法です。 このメソッドは、指定された文字列形式の日付・時刻を、それと等価なDateTime型の値に変換します。変換に成功すればtrue、指定した書式と一致しなければfalseを返すため、入力された日付の形式が正しいかどうかの検証にそのまま利用できます。 基本的な使い方 TryParseExactメソッドの主な引数は以下の通りです。 第1引数: 検証対象となる日付の文字列 第2引数: 期待する書式(例: MM/dd/yyyy) 第3引数: カル