zoukankan      html  css  js  c++  java
  • windows下系统移植到linux下出现的问题

    今天遇到了一个之前没有遇到的问题,记录一下。

    我们是在windows下进行开发的,最终系统是部署在linux服务器上。

    在windows一切正常,但是部署到linux下时,有些功能不能用了。通过log查看。发现在日期转换的时候出了问题。

    旧代码的实现:

    public static Date StringToDate(String str){
            Date date = null;
            DateFormat format = DateFormat.getDateInstance();
            if(str != null && str != ""){
                try {
                    date = format.parse(str);
                } catch (ParseException e) {
                    e.printStackTrace();
                }
            }
            return date;
        }

    上述代码在windows上没有问题,但是在linux下执行就出现了日期解析异常,一度开始怀疑java跨平台还是有点缺陷。。。后来各种查找资料,终于找到了原因,是自己的代码有问题

    原因是因为DateFormat.getDateInstance();该方法依赖于系统本地的日期格式,但是windows的日期格式和linux的日期格式不同,所以在linux下解析出现异常。

    解决方法是换一种方式来进行日期解析,新代码如下:

    public static Date StringToDate1(String str){
            Date date = null;
            DateFormat format = null;
            if(str != null && str != ""){
                try {
                    if(str.trim().length()>12){
                        format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    }else {
                        format = new SimpleDateFormat("yyyy-MM-dd");
                    }
                    date = format.parse(str);
                } catch (ParseException e) {
                    e.printStackTrace();
                }
            }
            return date;
        }

    改过之后,问题解决

  • 相关阅读:
    【IDEA】(4)---很好用的DEBUG功能
    【IDEA】(3)---非常实用提高开发效率和水平的插件
    【IDEA】(2)---MAC代码模版
    【IDEA】(1)---MAC下常用快捷键
    Shell(2)—数组
    MySQL(12)---纪录一次left join一对多关系而引起的BUG
    MySQL(11)---约束
    Shell(1)---变量
    算法(2)---算法复杂度理论
    MySQL(10)---自定义函数
  • 原文地址:https://www.cnblogs.com/zhangyongJava/p/5772031.html
Copyright © 2011-2022 走看看