datetime.parseおよび特定の形式で機能させる


141

次の形式のXMLファイルから返される日時があります。

20080916 11:02

のように

yyyymm hh:ss

datetime.parse関数でこれを取得するにはどうすればよいですか?つまり、エラーなしで解析しますか?乾杯

回答:


246
DateTime.ParseExact(input,"yyyyMMdd HH:mm",null);

秒ではなく分が時間の後に続くと言うつもりであると仮定すると、あなたの例は少し混乱します。

ParseExactドキュメントは自動的に世界時またはそのような何かに変換し、解析をしたい場合には、他のオーバーロードを詳しく説明します。

@ Joel Coehoornが言及しているように、操作の成功または失敗を示すブール値を返すTryParseExactを使用するオプションもあります。私はまだ.Net 1.1を使用しているため、これを忘れることがよくあります。

他の形式を解析する必要がある場合は、Standard DateTime Format Stringsを確認してください。


11
DateTime.TryParseExact()を忘れないでください
Joel Coehoorn 2008

また、標準Xmlには独自の非常に固有のDateTime形式があり、.Net Xmlツールはそれを読み取ることができるはずです。
Joel Coehoorn、2008

この場合、最後のパラメーターをnullとして問題なく機能しますが、このCultureInfo.InvariantCultureを見つけた場合は、日付が「1823/01/01」のような場合に問題が発生する可能性があります。
Todilo

@JoelCoehoorn standard XML specific DateTime format
Kiquenet 2018

10

ヒントをありがとう、これを使用して日付「20071122」を解析しました。datetimestylesを追加する必要があり、何も使用しませんでした。

DateTime dt = DateTime.MinValue;

DateTime.TryParseExact("20071122", "yyyyMMdd", null,System.Globalization.DateTimeStyles.None, out dt);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.