FTPClient.listFiles 没有以秒为单位返回时间

FTPClient.listFiles is not returning time in seconds

private static void getFTPFileProperties(FTPClient client,
            String ftpLocation, String pattern) throws IOException {
    FTPFile[] fileList=null;
    fileList = client.listFiles();
    for(int i=0;i<fileList.length;i++)
    {
        FTPFile file= fileList[0];
        Calendar cal = file.getTimestamp();
        DateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(dateFormater.format(cal.getTime()));
    }
}

我已经编写了上述函数来检索文件详细信息。但不知何故,我正在检索没有文件秒部分的详细信息。 我将 lastModifiedDate 检索为 2013-08-08 00:00:00,因为它的实际 lastModifiedDate2013-08-08 12:53:27 PM

FTPClient.listFiles 使用古老的 LIST 命令。使用该命令,FTP 服务器 returns 一个类似于 Unix ls 命令的列表是很常见的。对于旧文件(超过一年),它仅显示精确到天的时间戳。

如今,您应该始终使用 FTPClient.mlistDir, which uses the modern MLSD command,它始终以秒精度检索时间戳。

public FTPFile[] mlistDir() throws IOException

当然,除非您连接到不支持 MLSD 命令的古老 FTP 服务器。

请注意,mlistDir 自 Apache Commons Net 3.0 起受支持。