2009-09-15 5 views
7

C#文字列がXML Schema dateTime形式に準拠していることを確認しようとしています。 MSDNを見ると、 "o"、 "s"、 "u"などの標準形式の文字列がすべて有効なdateTimesを記述できるようですが、DateTime.ParseExactを取得することはできません。私はここで間違って何をしていますか?DateTime.TryParseExactを使用してXMLスキーマのdateTime準拠を確認する

string myDate = "1999-05-31T13:20:00.000-04:00"; 
DateTime.ParseExact(myDate, "o", CultureInfo.InvariantCulture, DateTimeStyles.None); 
DateTime.ParseExact(myDate, "s", CultureInfo.InvariantCulture, DateTimeStyles.None); 
DateTime.ParseExact(myDate, "u", CultureInfo.InvariantCulture, DateTimeStyles.None); 

上記の作業はありません。申し訳ありませんが、私の書式が悪い場合:初めてここに質問を投稿する。与えられた文字列が正しい形式を持っていない場合、これはFormatExceptionをスローします

DateTime dt = XmlConvert.ToDateTime(myDate); 

:あなたは、データがXMLに準拠していることをテストしたいので

答えて

9

だけXmlConvert.ToDateTime(string)が今時代遅れとみなされ、あなたがXmlConvert.ToDateTime(string, XmlDateTimeSerializationMode)を使用する必要があることに注意してください。

しかし、あなたはDateTime.ParseExactを(使用して主張し、そうする正当な理由があるが、その後、あなたが避けるためにDateTime.TryParseExactを使用する必要がある場合(XmlConvert.ToDateTimeを使用私はそれを行うの習慣持つ(解析するために面倒かもしれません上記のパラグラフで

string format = "yyyy-MM-ddTHH:mm:ss.fffzzz"; 

parentheticals;申し訳ありませんが)

:失敗の場合は例外投げ)は次のフォーマット文字列を使用することができます。
関連する問題