0

私は下にxmlファイルを持っています

<?xml version="1.0" encoding="utf-8"?><rss version="2.0">
 <channel>
  <title>About RSS</title>
  <link>http://localhost:27549/TTTT.aspx</link>
  <description>The latest news</description>
  <image><url>http://localhost:27549/images/ttt_logo.jpg</url></image>
  <item>
    <title>ABC</title>
    <link>http://localhost:27549/Viewttt.aspx?id=217</link>
    <description>zzzzzzzzzzzzzzzzzzz...</description>
    <pubDate>Tuesday, August 30, 2011, 00:00:00AM</pubDate>
  </item>
 </channel>
</rss>

pubdate タグは見えますが、pubDate の位置には表示されません。これは、動作しない pubdate を取得する際の私のコードです。

DateTime dt = DateTime.ParseExact(pubDate, "MM/dd/yyyy", CultureInfo.InvariantCulture);
pubDate = dt.ToString("dddd, MMMM dd, yyyy, HH:mm:sstt");


writer.WriteElementString("pubDate", pubDate);

たとえば、以下のように今日の日付を取得しようとしましたが、

writer.WriteElementString("pubDate", DateTime.Now.ToString("r"));

そして日付が表示されています。最初のコード セットで何が間違っている可能性がありますか?

String pubDate = "";

            using (System.Data.Common.DbCommand dbCommand = DataAccess.Instance().Database.GetStoredProcCommand("usp_GetLatestNews"))
            {

                using (IDataReader reader = DataAccess.Instance().Database.ExecuteReader(dbCommand))
                {
                    int i = 0;
                    while (reader.Read())
                    {
                        if (i == 0)
                        {
                            newsHeader = "New News Summary Available for " + reader["Title"].ToString() + " - " + reader["PubDate"];
                            newsLink = "ViewTTT.aspx?id=" + reader["Id"].ToString();
                            newsDesc = reader["FullDescription"].ToString();
                            pubDate = reader["pubDate"].ToString();
                            DateTime dt = DateTime.ParseExact(pubDate, "MM/dd/yyyy", CultureInfo.InvariantCulture);

                            pubDate = dt.ToString("r");
                        }
                        i++;
                    }

                };

            }

AddRSSItem(writer, newsHeader, newsUrl, newsDesc, pubDate);
.............
.............

public XmlTextWriter AddRSSItem(XmlTextWriter writer,
                 string sItemTitle, string sItemLink,
                 string sItemDescription, String pubDate)
        {
            writer.WriteStartElement("item");
            writer.WriteElementString("title", sItemTitle);
            writer.WriteElementString("link", sItemLink);
            writer.WriteElementString("description", sItemDescription);
            writer.WriteElementString("pubDate", pubDate);
            writer.WriteEndElement();

            return writer;
        }
4

1 に答える 1

1

私の提案は、あなたが動作すると述べたフォーマットを使用することです:

DateTime dt = DateTime.ParseExact(pubDate, "MM/dd/yyyy", CultureInfo.InvariantCulture);
pubDate = dt.ToString("r");
writer.WriteElementString("pubDate", pubDate);

異なる形式である2011 年 8 月 30 日火曜日 00:00:00AMとは対照的に、"r"指定子Tue, 30 Aug 2011 00:00:00 GMTを使用していることに注意してください。"dddd, MMMM dd, yyyy, HH:mm:sstt"

于 2012-06-08T16:06:13.090 に答える