syslog メッセージを受信してデータベースに保存する syslog サーバーを作成しています。
メッセージで受信した日付文字列を構造に解析しようとしていますDateTime
。
次の例では、わかりやすくするために空白の代わりにアンダースコアを使用します。受信した実際の文字列にはスペースが含まれています。
受け取った文字列は の形式です"Jun__7_08:09:10"
。月と日の間にある 2 つの空白に注意してください。
日が 10 日以降の場合、文字列は"Jun_10_08:09:10"
(1 つの空白) になります。
私が解析した場合:
DateTime.ParseExact(Log.Date, "MMM d HH:mm:ss", CultureInfo.InvariantCulture);
1 番目から 9 番目までの文字列に対して機能しますが、10 番目から例外をスローします。1 つのスペースで解析すると、1 番目から 9 番目まで例外がスローされます (そして 10 番目以降は機能します)。
この文字列を解析する正しい方法は何ですか?