代码之家  ›  专栏  ›  技术社区  ›  sixtyfootersdude

使用Java获取页面的最后修改日期

  •  2
  • sixtyfootersdude  · 技术社区  · 14 年前

    有没有一种标准的方法来判断页面最后一次修改的时间?目前我正在做:

    URLConnection uCon = url.openConnection();
    uCon.setConnectTimeout(5000);   // 5 seconds
    String lastMod = uCon.getHeaderField("Last-Modified");
    System.out.println("last mod: "+lastMod);
    

    Last-Modified 字段。

    http://www.cbc.ca

    X-Origin-Server
    Connection
    Expires
    null
    Date
    Server
    Content-Type
    Transfer-Encoding
    Cache-Control
    

    我可以分析一个页面,试图得到它的日期,但这似乎是一个重大的痛苦。标准是什么?

    (如果可能的话,我想坚持使用URLConnection,因为这是我用来下载网页的方式)

    2 回复  |  直到 14 年前
        1
  •  5
  •   PleaseStand    14 年前

    没有标准。动态生成的网页通常没有最后修改的字段,不同的网页以不同的方式包含日期。有些网站甚至不包括这样的日期,包括底部的“<当前年份>”。你可以试着在底部或顶部找个约会对象,但是 从网页中提取日期必须是特定于站点的。

        2
  •  3
  •   Michael Konietzka    14 年前

    HTTP/1.1: Header Field Definitions :

    14.29上次修改

    上次修改的实体标题字段 指示日期和时间 最后一次修改。

       Last-Modified  = "Last-Modified" ":" HTTP-date
    

    其使用的一个例子是

       Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT
    

    此标题字段的确切含义 原始资源。对于文件,它可能 只是最后一次修改的文件系统 时间。对于具有动态 最近一次修改时间集 网关,这可能是最后一次更新 记录的时间戳。对于虚拟 对象,这可能是

    源服务器不能发送 服务器的消息时间 起源。在这种情况下 表示将来的某个时间 邮件发起日期。

    源服务器应获取 尽可能接近它的时间 生成其日期值 回应。这允许收件人 准确评估 如果实体在接近时间时更改

    HTTP/1.1服务器应发送

    从这一点出发 Last-modified 是可选的,其价值取决于原始资源的性质。