1. 程式人生 > 實用技巧 >FTPClient 獲取檔案的秒級最後修改時間

FTPClient 獲取檔案的秒級最後修改時間

二次開發DataX ftpreader

需要精確獲取ftp端檔案的最後修改時間,

開始使用的是

FTPFile[] ftpFiles = ftpClient.listFiles(new String(fileName.getBytes(),FTP.DEFAULT_CONTROL_ENCODING));
if(ftpFiles != null){
if (ftpFiles.length == 1 && ftpFiles[0].isFile()) {
lastModifyTime = ftpFiles[0].getTimestamp().getTimeInMillis() +
ftpFiles[0].getTimestamp().getTimeZone().getOffset(0);

// System.out.println(lastModifyTime);
}

但是獲取到的修改時間精確度只能到分鐘,取不到秒和毫秒值,

改用

            FTPFile[] ftpFiles = ftpClient.listFiles(new String(fileName.getBytes(),FTP.DEFAULT_CONTROL_ENCODING));
            
if(ftpFiles != null){ if (ftpFiles.length == 1 && ftpFiles[0].isFile()) { // lastModifyTime = ftpFiles[0].getTimestamp().getTimeInMillis() + // ftpFiles[0].getTimestamp().getTimeZone().getOffset(0); String lastModifyTimeStr = ftpClient.getModificationTime(fileName).substring(4); SimpleDateFormat sdf
= new SimpleDateFormat( "yyyyMMddHHmmss"); Date startTimeDate = sdf.parse(lastModifyTimeStr); lastModifyTime = startTimeDate.getTime() + ftpFiles[0].getTimestamp().getTimeZone().getOffset(0); // System.out.println(lastModifyTime); } }

這樣獲取到精確的秒了,但是獲取不到毫秒,

但已經滿足篩選控制需求,