如何在FTPClient中设置时间戳的时间

时间:2015-04-05 17:12:42

标签: java apache-commons-net

我在服务器上有一个文件,我想修改它的时间戳。

以下似乎是为了这个目的:

ftpClient.mlistFile("file path").getTimestamp().setTime(date);

但它根本不会改变日期。

以下是完整代码:

String remotePath = "/public_html/AX/dan.css";
Calendar ftpFile = ftpClient.mlistFile(remotePath).getTimestamp();
Date date = ftpFile.getTime();
System.out.ptintln(date);

Calendar cal = Calendar.getInstance();
ftpClient.mlistFile(remotePath).getTimestamp().setTime(cal.getTime());
System.out.ptintln(ftpClient.mlistFile(remotePath).getTimestamp().getTime());

因此上面的代码首先打印远程文件的旧时间戳,将其修改为当前时间并再次打印。但是如果你运行它,你会发现第二个印刷品仍然与旧印刷品相同。因此,行动修改无效。

为什么?有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您应该使用setTimestamp()代替setTime()。根据{{​​3}}。做这样的事情

Calendar cal = Calendar.getInstance();
FTPFile file = ftpClient.mlistFile(remotePath);
file.setTimestamp(cal);
System.out.ptintln(file.getTimestamp());

答案 1 :(得分:0)

setModificationTime()上使用FTPClient

根据此link,它将日期作为字符串格式:

  

YYYYMMDDHHMMSS

这是一个片段:

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
ftp.setModificationTime(fileName, sdf.format(new Date(localFile.lastModified())));

setTimestamp()上运行FTPFile对我来说也不起作用。事实上,服务器没有收到任何与之相关的命令,因此它要么需要另一步,要么就是没有用于此目的。