论坛首页 Java企业应用论坛

如何利用Rome parser 163.com的rss的日期

浏览 4075 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-02-26  

在利用Rome解析163的rss的时候,发现无法获得rss中的文章的发布日期。

查看了163.com的rss源代码后,发现rss以是gbk的编码方式提供(sohu,sina,xinhuanet都是utf-8格式,并且日期格式也是gmt的日期格式,rome直接能把日期解析出来)。

查看了rome的源代码后,发现问题出在com.sun.syndication.io.impl.DateParser这个日期解析类上面,

再仔细分析了一个这个类,原来rome支持自定义日期格式。

java 代码
  1. private static String[] ADDITIONAL_MASKS;   
  2.   
  3. static {   
  4.     ADDITIONAL_MASKS = PropertiesLoader.getPropertiesLoader().getTokenizedProperty("datetime.extra.masks","|");   
  5. }  
  1. public static Date parseDate(String sDate) {   
  2.       Date d = parseW3CDateTime(sDate);   
  3.       if (d==null) {   
  4.           d = parseRFC822(sDate);   
  5.           if (d==null && ADDITIONAL_MASKS.length>0) {   
  6.               d = parseUsingMask(ADDITIONAL_MASKS,sDate);   
  7.           }   
  8.       }   
  9.       return d;   
  10.   }  

哦,原来只需要在rome.properties中定义好自定义日期格式类就可以了。

我的定义如下:

 datetime.extra.masks=yyyy-MM-dd HH:mm:ss|yyyy-MM-dd HH:mm

前面一段是为了对付163使用,后面一段是为了对付天极网使用。

Rome真方便!

Rome下载地址:http://wiki.java.net/bin/view/Javawsxml/Rome

163的rss地址:http://sports.163.com/special/00051K7F/rss_sportscp.xml

天极的rss地址:http://www.yesky.com/index.xml (这个rss不错,更新快)

   http://netbus.iteye.com

如果没有特别注明,本Blog文章岂为原创。

转贴请注明出处:   

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics