SimpleDateFormat可以将Date类型转换为String类型,也可以将String类型转换为Date类型,如果只是在windows系统下将String类型转换为Date类型不存在问题,但是如果开发环境是使用windows,项目部署环境是linux,就会出现在本地没有问题,但是在linux中部署的项目时间就会出现问题,这里提供两种方式解决

  • 第一种就是时间不用Date类型来存储,而是使用String类型
  • 第二种就是使用Timestamp,可以看一下Timestamp中valueOf()和toString()方法
    windows与linux系统下SimpleDateFormat使用的不同

所以如果是yyyy/MM/dd或者是yyyy/MM/dd(比较常用的两种格式)就可以使用下面的方式来进行转换
String strTime = “2019-03-05”;
strTime = (new StringBuilder(String.valueOf(strTime))).append(" 00:00:00.000000000").toString();
Date date = Timestamp.valueOf(strTime);
这样就不会出现在linux和windows下将字符串转换为时间时结果不一样的问题。
当然如果时间格式不是类似上面写的那样就需要修改append后面的内容了,根据api,可以知道后面是时分秒以及分数秒,所以调整成对应的格式即可。

相关文章: