JAVA使用FTPClient类获取linux上的文件最后修改日期少了8小时

首先linux服务器时间设置的是utc+8,在linux上看到的也是utc+8时间,
然后java后台利用FTPClient连接linux服务器,获取到文件的最后修改日期却是不是utc+8,而是utc!
查了些网上的资料,说的是检查tomcat或者配置linux之类的,没有解决问题。
自己调试打印发现FTPClient获取到的时间默认情况下会返回utc时间和时区差时间,于是从java后台出发,将返回的utc时间与传过来的时区差时间相加,得到真实时间,问题解决。

FTPClient f = new FTPClient();   
f.connect(url,port); 
f.login(username, password);
int reply = f.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
     f.disconnect();
}
//设置编码
f.setControlEncoding("UTF-8");  
f.setFileType(FTPClient.BINARY_FILE_TYPE); 
//开通一个端口来传输数据
f.enterLocalPassiveMode();
//转换到要工作的目录
f.changeWorkingDirectory("/car/log");   
FTPFile[] files = ftpClient.listFiles();
for (int i = 0; i < files.length; i++) {
    //utc时间加上时间差
    Long addTime = files[i].getTimestamp().getTime().getTimeInMiilis()+
                   files[i].getTimestamp().getTime().getZoneInfo().getOffset(0);
    Date date = new Date(addTime);
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String str = sdf.format(date );
    System.out.println("时间: " + str);              
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值