我使用的是windows服务器,用commons-net 包,取FTP上文件的最后修改时间:
FTPClient ftp = new FTPClient();
ftp.connect("localhost", 14000);
ftp.login("admin", "admin");
ftp.changeWorkingDirectory("sc");
FTPFile[] fl=ftp.listFiles("WS.txt");
System.out.println(fl[0].getTimestamp().getTime());
ftp.disconnect();
取得的时间只能精确到分钟,秒都是00该怎么做才能得到秒数呢?备注:换用了N个开源包,都无法得到秒数

解决方案 »

  1.   

    调用getTimestamp会返回一个Calendar对象,然后调用Calendar的getTime()会返回一个Date,但是Date的toString()方法用错了,它不会返回毫秒数的
    参见:
    public String toString()把此 Date 对象转换为以下形式的 String: 
     dow mon dd hh:mm:ss zzz yyyy其中:
    dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。 
    mon 是月份 (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)。 
    dd 是一月中的某一天(01 至 31),显示为两位十进制数。 
    hh 是一天中的小时(00 至 23),显示为两位十进制数。 
    mm 是小时中的分钟(00 至 59),显示为两位十进制数。 
    ss 是分钟中的秒数(00 至 61),显示为两位十进制数。 
    zzz 是时区(并可以反映夏令时)。标准时区缩写包括方法 parse 识别的时区缩写。如果不提供时区信息,则 zzz 为空,即根本不包括任何字符。 
    yyyy 是年份,显示为 4 位十进制数。 
      

  2.   

    感谢myhonor,但是秒的话一直为00,这个问题真是头痛
      

  3.   

    File中的long lastModified();
    这个好像可以达到毫秒级
      

  4.   

    只能得到分。因为FTP上的文件的更新时间也只精确到分。所以你获得的时间里的秒数均为零。