windows下系统移植到linux下出现的问题
2016-08-15 10:33
211 查看
今天遇到了一个之前没有遇到的问题,记录一下。
我们是在windows下进行开发的,最终系统是部署在linux服务器上。
在windows一切正常,但是部署到linux下时,有些功能不能用了。通过log查看。发现在日期转换的时候出了问题。
旧代码的实现:
上述代码在windows上没有问题,但是在linux下执行就出现了日期解析异常,一度开始怀疑java跨平台还是有点缺陷。。。后来各种查找资料,终于找到了原因,是自己的代码有问题
原因是因为DateFormat.getDateInstance();该方法依赖于系统本地的日期格式,但是windows的日期格式和linux的日期格式不同,所以在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; }
改过之后,问题解决
相关文章推荐
- windows中的QT项目移植到linux下出现中文乱码问题
- mysql出现中文乱码或不能输入中文问题的Windows或Linux系统解决方法
- Windows到Linux系统代码移植遇到的问题
- mysql--出现中文乱码或不能输入中文问题的Windows或Linux系统解决方法
- linux和windows系统互拷文件乱码问题
- windows到linuxc++项目移植问题小结
- windows到Linux代码移植遇到的问题
- Socket 编程 windows到Linux代码移植遇到的问题
- 解决在windows目录下的文件到ubuntu系统下出现的中文乱码问题
- 移植Linux到ARM920t 中之后再DNW中出现乱码问题
- 在windows下使用putty连接虚拟中的linux出现主机拒绝的问题(已解决)
- 解决Linux和Windows双系统的引导问题
- Windows系统用户转Linux新手常见问题整理
- Linux移植之驱动编译出现的问题
- 在pc机上移植fatfs文件系统(windows/linux) (一)
- windows和linux系统之间的txt文档兼容问题
- 解决windows下文件在unix系统下出现^M的问题 及 Vi高级命令
- 关于,系统启动问题。linux,windows etc.
- cygwin移植linux程序到windows及在eclipse中使用cygwin的常见问题
- 几个 Windows 到 Linux 的代码移植问题