web-dev-qa-db-ja.com

カスタム形式で日付と時刻を含む文字列を解析します

次の形式の文字列があります"ORDER20100322194007"、 どこ 20100322は日付であり、194007は時間です。文字列を解析して、含まれているDateTimeオブジェクトを取得する方法は?

47
akrisanov

常にORDERで始まりますか?

string pattern = "'ORDER'yyyyMMddHHmmss";
DateTime dt;
if (DateTime.TryParseExact(text, pattern, CultureInfo.InvariantCulture, 
                           DateTimeStyles.None,
                           out dt))
{
    // dt is the parsed value
} 
else 
{
    // Invalid string
}

無効な文字列が例外をスローする必要がある場合は、 DateTime.ParseExact の代わりに DateTime.TryParseExact を使用します

常に「ORDER」で始まらない場合は、日付と時刻の部分だけを取得するために必要なことをすべて行い、上記のフォーマットパターンから「 'ORDER'」を削除します。

87
Jon Skeet

DateTime.ParseExact メソッドを使用して、解析中に使用する形式を指定できます。

9
Giorgi

文字列の固定構造がない場合は、順序が常に存在するとは限らないため、正規表現を使用して数値と文字を分離し、分離した数値に対して日時関数に変換することができます。

1
Samiksha