把从rss解析出来的pubdate读到数据库里,可是很多rss中pubdate的格式都很乱举例:博客网:Wed, 13 Sep 2006 20:23:27 CST
新浪:Sat, 07 Oct 2006 14:25:37 GMT+8
sohu:Tue, 3 Oct 2006 08:27:03 +0800
网易:Sun, 27 Aug 2006 12:32:00 GMT
baidu:Fri, 06 Oct 2006 10:55:23 +0800
msn:Thu, 14 Sep 2006 22:04:29 GMT如何把以上的时间转换成DateTime格式。
尤其注意 sohu中的日是个位,我参考了这个方法http://community.csdn.net/Expert/topic/5033/5033936.xml?temp=.3858759,可是如果日是个位的话就不行。谁有过这方面的经验,帮帮忙阿。

解决方案 »

  1.   

    Response.Write(DateTime.Now.ToString("r"));Response.Write(DateTime.Parse("Sat, 07 Oct 2006 23:13:41 GMT").ToString());
      

  2.   

    刚查了下rss标准,pubdate中的日期是必须符合rfc822评议标准的。楼主详细了解下rfc822,应该会有所帮助。
      

  3.   

    luck0235(风平浪静时人人都能掌舵)标准是定好了,但大家都不去遵守,我最终还是要处理的
    刚才又发现一种解析不了就是","后边没有空格的,pjblog的rss就是如此。
      

  4.   

    其实采用4位年格式的都算违反rfc822的了,因为rfc822规定年用2位表示。至于","后面rfc822则没规定有空格。我建议你用Split来分隔,用{" ", ","}作为分隔限定符,同时删除空的元素(也就是"Web, 03"只会分隔出{"Web", "03"},中间不会多一个"")。分隔完之后,每一段独立识别,该是字符串的就ToLowerCase然后switch,该是数字的就Convert.ToInt尝试转换,这样大多数情况都能搞定。最麻烦就是后面的时区了,这里要写复杂的switch。
      

  5.   

    cat_hsfz(我的Blog在http://purl.oclc.org/NET/cathsfz) 
    说的就很麻烦,呵呵有没有现成的,毕竟用.net作rss阅读器的应该挺多的吧。
      

  6.   

    这个字段的写法基本是一个东方一个样子。许多网站没有统一的写法,
    你可以使用多个
    try
    {
    dt = DateTime.Parse (String, IFormatProvider) 
    }
    直到得到正确的日期。
      

  7.   

    这个字段的写法基本是一个地方一个样子。许多网站没有统一的写法,
    你可以使用多个
    try
    {
    dt = DateTime.Parse (String, IFormatProvider) 
    }
    直到得到正确的日期。