Java在linux环境下和windows环境下日期字符串显示不同

图片如果损坏,点击链接:

https://www.toutiao.com/i6511565147322974724/

出现的现象:

在Java中我想要将当前的时间格式化为需要的字符串,然后存放到数据库中,所以写了一个工具类用来进行格式化。

Java在linux环境下和windows环境下日期字符串显示不同

今天想使用dfDefault这种格式,得到2018-1-16这种形式

Java在linux环境下和windows环境下日期字符串显示不同

在调用的地方使用

Java在linux环境下和windows环境下日期字符串显示不同

然后在本地(windows环境下调试运行),数据正确存放到数据库中

Java在linux环境下和windows环境下日期字符串显示不同

然后高高兴兴把项目部署到自己服务器(Linux环境CentOS7),点击运行,页面显示:Java在linux环境下和windows环境下日期字符串显示不同

第一反应是先查看数据有问题还是显示的问题,打开数据库

Java在linux环境下和windows环境下日期字符串显示不同

数据存放有问题,但在本地环境(Windows)下没有问题。所以运行环境上有本地差异。

上网搜索相应结果,没有很明确的文章解释我这种情况,直到搜索到一个文章提示查看Linux本地参数

Java在linux环境下和windows环境下日期字符串显示不同

就是说本地时间使用的是en_us,那么我采用默认的形式获取格式化字符串一定有问题

Java在linux环境下和windows环境下日期字符串显示不同

于是改动了代码

Java在linux环境下和windows环境下日期字符串显示不同

调试本地没有问题,部署到服务器,结果也没有问题

服务器显示:

Java在linux环境下和windows环境下日期字符串显示不同

每个人的问题不尽相同,要尽力去理解每篇文章中自己需要的内容,去解决自己的问题。