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

在利用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文章岂为原创。

转贴请注明出处:   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值