zoukankan      html  css  js  c++  java
  • 有关ftp4j的FTPListParseException异常

    昨天换了个ftp服务器,发现程序出现了异常it.sauronsoftware.ftp4j.FTPListParseException,网上搜了下,说是FTPClient.list()时it.sauronsoftware.ftp4j.listparsers.DOSListParser对日期的解析出现了异常,参考了提供的解决方案,ftp服务器是不能随便动的,应用服务器语言环境也是不好修改的,只能修改ftp4j的源码。

    网上下到源码http://sourceforge.net/projects/ftp4j/ 找到DOSListParser,日期的解析使用DATE_FORMAT 

    //private static final DateFormat DATE_FORMAT = new SimpleDateFormat("MM/dd/yy hh:mm a");修改前
    private static final DateFormat DATE_FORMAT = new SimpleDateFormat("MM/dd/yy hh:mm a", Locale.ENGLISH);

    ftp返回的文件列表类似"01-06-16  06:02AM                 2245 ****.txt",DOSListParser一行一行的解析,组成日期格式"01/06/16 06:02 AM",使用DATE_FORMAT parse成日期,本来没什么问题就出现在"AM"上,修改前DATE_FORMAT的Locale是默认的,也就是和操作系统有关,我本地是windows地区是中国,因此"MM/dd/yy hh:mm a"不能解析"01/06/16 06:02 AM",而能够解析"01/06/16 06:02 上午",好办,修改如上DATE_FORMAT统一使用Locale.ENGLISH,既然DATE_FORMAT统一使用Locale.ENGLISH,那么兼容期间,对AM/PM进行转换,中文-》英文

    ampm=("上午".equals(ampm)? "AM":("下午".equals(ampm)? "PM":ampm));
    String mdString = month + "/" + day + "/" + year + " " + hour + ":" + minute + " " + ampm;

    源码是用Ant打包的,导入idea中直接运行build的jar就好了,很顺利

    补充下:ftp服务器架在windws上使用DOSListParser解析,架在linux上使用UnixListParser解析

  • 相关阅读:
    二分查找
    二分排序
    How to use hdu?
    HGOI 20200721
    HGOI 20200720
    HGOI 20190719
    HGOI 20200716
    HGOI 20190714
    LCA 的一些扩展算法
    HGOI 20190711
  • 原文地址:https://www.cnblogs.com/yhzh/p/5110293.html
Copyright © 2011-2022 走看看