Как сравнить последнюю модификацию FTPClient File с локальным файлом?

У меня есть два файла, один на сервере и один локальный, я хочу получить последние изменения обоих файлов и посмотреть, какой из них более новый. Я сделал метод, но я всегда получаю один и тот же результат. Я пытался проверить каждую сторону, но оператор if всегда принимает одно и то же решение.

Вот мой код:

public void SyncCheck(FTPClient ftpClient, String remoteFilePath, String savePath) throws IOException, ParseException{
        String time = ftpClient.getModificationTime(remoteFilePath);
        Date remoteFileDate = timeSplitter(time);
        Date LocalFileDate = new Date(new File(savePath).lastModified());

        if(remoteFileDate.after(LocalFileDate)){
            System.out.println("Remote File is newer: " + remoteFileDate);
        }
        else{
            System.out.println("nothing");
            System.out.println("Remote " + remoteFileDate);
            System.out.println("Local " + LocalFileDate);
        }
    }

    public Date timeSplitter(String time) throws ParseException{
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
        String timePart = time.split(" ")[1];
        Date modificationTime = dateFormat.parse(timePart);
        return modificationTime;
}

Результат всегда такой:

nothing
Remote Fri Apr 03 02:20:30 BST 2015
Local Fri Apr 03 03:12:58 BST 2015

Не имеет значения, является ли удаленный файл более новым или более старым. Другое, что я замечаю, это то, что удаленный файл изменяется в 03:20:30, но он всегда на один час позади. Это о чем-нибудь с часовыми поясами?

Или есть идея сравнить время последнего изменения одного файла сервера с локальным?

1 ответ

Решение

Не существует стандартного способа узнать часовой пояс ftp-сервера, но вы можете загрузить файл, а затем рассчитать разницу во времени между временем файла, сообщаемым FTP и локально. Это должен быть метод, выполняющийся в качестве первого шага вашей программы для инициализации логики часового пояса в каждом вашем клиентском приложении.

Другие вопросы по тегам