次の形式の文字列があります"ORDER20100322194007"
、 どこ 20100322
は日付であり、194007
は時間です。文字列を解析して、含まれているDateTime
オブジェクトを取得する方法は?
常に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'」を削除します。
DateTime.ParseExact メソッドを使用して、解析中に使用する形式を指定できます。
文字列の固定構造がない場合は、順序が常に存在するとは限らないため、正規表現を使用して数値と文字を分離し、分離した数値に対して日時関数に変換することができます。