二次開發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); } }
這樣獲取到精確的秒了,但是獲取不到毫秒,
但已經滿足篩選控制需求,