明らかに、読者は応答XMLからのこの形式の着信が嫌いです。文字列 '3/18/09 10:16 PM'は有効なAllXsd値ではありません
これを再フォーマットできるかどうかわかりません。私XmlReader
で次のコードを使用してDateTime
に変換しようとすると:
reader.ReadContentAsDateTime();
明らかに、読者は応答XMLからのこの形式の着信が嫌いです。文字列 '3/18/09 10:16 PM'は有効なAllXsd値ではありません
これを再フォーマットできるかどうかわかりません。私XmlReader
で次のコードを使用してDateTime
に変換しようとすると:
reader.ReadContentAsDateTime();
のXmlの読者は、一般的には非常に特定の形式で日付/時刻を期待します。あなた自身がXmlConvert
を使用して、これを使用することができます。
string s = XmlConvert.ToString(DateTime.Now);
DateTime when = XmlConvert.ToDateTime(s);
あなたが何か他のものを使用している場合は、文字列としてそれを読むと、実際のフォーマット文字列を指定するDateTime.TryParseExact
(または類似)を使用する必要があります:
string s = reader.ReadContentAsString();
DateTime when = DateTime.ParseExact(s, "M/d/yy hh:mm tt",
CultureInfo.InvariantCulture);
あなたがXmlSerializer
を使用している場合は、変換を行うにシムプロパティを使用することができます - これは、あなたがやっていることであるなら、私が知っているように...
XML schema仕様によると、日付時刻値は、である必要がありISO860 1形式(
)2009-03-13T22:16:00
ルビーでは 'iso8601'メソッド、例えば' Time.now.iso8601'を使います。 – Zubin
ISO8601フォーマットは好奇心のため、 '2009-03-18T22:16:00-05:00'のように見えるはずですが、ISO8601フォーマットではないDavidの回答(タイムゾーンを省略)も私のために働きます。これは、XmlConverterのローカルシリアル化のためです(したがって、タイムゾーンは不要です)。 – djiango
ISO8601では、タイムゾーンはオプションです。したがって、オリジナルの文字列と文字列の両方が有効なISO8601の日付時刻になります。 http://www.w3.org/TR/xmlschema-2/#deviantformatsによると、XMLスキーマではタイムゾーンもオプションです。なぜタイムゾーンのバージョンがあなたのために機能しないのか分かりません。 –
私が摂食していたデータは、10/29/2012 15:25となってしまい、失敗しました。私が10/11/2012 15:25に変更したとき、それはうまくいった。 –
@MarcGravell、 'XmlSerializer'を使っていくつかのrssフィードを非直列化しようとすると、' PubDate'要素がエラーを引き起こします。どうすれば修正できますか? – burhan
@burhan値がどのように入ってきているのかを見て、それを適切に処理しますか?代わりに、コアフレームワークには、より良い仕事をすることができるRSSターゲットクラスが含まれています。 –