0

xml から文字列を取得して同等の日付に変換しようとしていますが、うまくいきません。使用しているコードは次のとおりです。

var Pubdate = DateTime.Parse((sourcei.Element("pubDate").Value).Replace("\t","").Replace("\n",""));

これは、解析しようとしている実際のタグです。

<pubDate>

                        Mon, 09 Sep 2013 13:47:57 EDT 

                </pubDate>

(はい、元のタグにはスペースがあります)。

それで、何がうまくいかないのですか?

4

3 に答える 3

1

EDT が原因で失敗しています。

参照: PST/CEST/UTC/etc の形式のタイム ゾーンで DateTime を解析する

文字列から「EDT」を削除しても、エラーは発生しません。

次の方法でテストできます。

var pubDate = DateTime.Parse( "Mon, 09 Sep 2013 13:47:57 EDT" );

var pubDate = DateTime.Parse( "Mon, 09 Sep 2013 13:47:57" );
于 2013-09-09T18:40:08.070 に答える
0

システム日付が日付文字列形式にマップできない場合、予期しないエラーが発生する可能性があるため、DateTime.Parse() メソッドを使用して直接解析しないでください。この方法を試す必要があります。

DateTime dateValue;
DateTime dateValue1;
CultureInfo culture = CultureInfo.CurrentCulture;
DateTimeStyles styles = DateTimeStyles.None;
DateTime.TryParse("" + sourcei.Element("pubDate").Value.Trim(), new CultureInfo("en-US"), styles, out dateValue);
dateValue1 = DateTime.Parse(""+dateValue.ToShortDateString());
StringBuilder dateValue2 = new StringBuilder("" + dateValue1.ToString("MM/dd/yyyy"));
dateValue2 = dateValue2.Replace("-", "/");

注:ここでは、DateString 形式の例を「MM/dd/yyyy」としています。そのため、要件に応じてこの形式を変更する必要があります。

于 2013-09-10T06:25:39.903 に答える