2012-02-12 11 views
-1

私はC#でiTunesで提供されているxmlを解析するアプリケーションを作成していますが、 'Date Added'日付この構文を持っている「更新:どのように変換する '2012-02-06T23:18:17Z'をDateTimeに変換

2012-02-06T23:18:17Z

私はこの試みた:

DateModified = DateTime.ParseExact(s.Element("DateModified").ToString(), "yyyy-MM-ddTHH:mm:ssZ", System.Globalization.CultureInfo.InvariantCulture) 

をしかし、アプリケーションがFormatException

{"String was not recognized as a valid DateTime."} 
で失敗します210

答えて

5

私はs.Element("DateModified").ToString()があなたの考えを出力していないと信じています。

予想通りこれが働かない:ファンシー

var d = DateTime.ParseExact("2012-02-06T23:18:17Z", "yyyy-MM-ddTHH:mm:ssZ", System.Globalization.CultureInfo.InvariantCulture); 
Console.WriteLine(d.ToString()); 
+0

はちょうど私の答えを削除しました'その文字列に対して、私は入力文字列*が実際にその形式文字列を解析するのに気づいていませんでした。よく目撃された! –

+1

これは完璧に機能しました...私はs.Element( "DateModified")に気づいていませんでしたToString()が出力されました: 2012-02-06T23:18:17Z lagranzotto

0

は何も:

var str = "2012-02-06T23:18:17Z"; 
DateTime t = DateTime.Parse(str, CultureInfo.InvariantCulture); 
t.ToUniversalTime(); 
1

が、これはあなたが要素のをつかむので、代わりにこれを実行する必要があるXMLにLINQのであると仮定すると:

DateModified = DateTime.ParseExact(s.Element("DateModified").Value, "yyyy-MM-ddTHH:mm:ssZ", System.Globalization.CultureInfo.InvariantCulture); 
5

LINQ to XMLを使用している場合、要素をDateTimeにキャストします。これは自動的に正しいフォーマット文字列で日付と時刻を解析します

dateModified = (DateTime)s.Element("DateModified"); 

そうでない場合、あなたはXmlConvert.ToDateTimeを使用することができます:あなたは `ParseExactを使用する必要はありませんが、ため

dateModified = XmlConvert.ToDateTime(s.Element("DateModified").Value, XmlDateTimeSerializationMode.Utc); 
+0

これも動作しますXAttributeオブジェクトについて説明します。 –

関連する問題