gson日期转换问题
转:http://blog.csdn.net/liao_leo/article/details/44593095
今天遇到个很奇怪的问题,gson解析日期字符串,本地执行可以,服务器上执行就报错。
这种问题一般都跟环境相关,到gson源代码中看到了DateTypeDapter这个类,
private final DateFormat enUsFormat
= DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.DEFAULT, Locale.US);
private final DateFormat localFormat
= DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.DEFAULT);
private final DateFormat iso8601Format = buildIso8601Format();
private static DateFormat buildIso8601Format() {
DateFormat iso8601Format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US);
iso8601Format.setTimeZone(TimeZone.getTimeZone("UTC"));
return iso8601Format;
}
它有几种parse日期字符串的的DataFormat类,一个个尝试,如果不成功就报错。
2015-03-24 14:54:14我们的日期格式是这样,本地转没问题,服务器上转就报错。localFormat
和enUsFormat跟本地语言有关,它的一些格式化类都在这个localdata.jar里面,java会获取本机的语言,然后加载不同的类获取格式
化信息。我本地的是zh_CN,服务器上的是en_US,本地是能够转换2015-03-24
14:54:14这个,因为它的格式正好是yyyy-MM-dd这种,但是服务器上的Dataformat的partern是en_us,无法解析
2015-03-24
14:54:14,就报错了。
解决办法,修改linux的
1.修改/etc/sysconfig/i18n
英文版系统:
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
中文版系统:
LANG="zh_CN.UTF-8"
SYSFONT="latarcyrheb-sun16"
2.source /etc/sysconfig/i18n
3.重启服务
最新文章
- sublime Text 3 安装emmet
- Spark 资源池简介
- Volley的GET和POST方法
- MyEclipse+Mysql (一)
- jQuery 中 on 方法-----给未来元素添加事件
- <;<;海闻电子发票接口 ESB 封装 代码指示 文档>;>;
- 各种会义PPT
- day10_python学习笔记_chapter13_面向对象编程
- ACdreamoj1110(多重背包)
- git上传本地项目到github
- 购物车css样式效果
- tp系统常量定义
- NYOJ 题目12喷水装置(二)
- 【CSA72G】【XSY3316】rectangle 线段树 最小生成树
- 链表中倒数第k个节点(Java)
- sql server 锁与事务拨云见日(上)
- 加载样式TTFB waiting时间长
- centos6下jbd2进程占用大量IO处理
- JavaWeb学习篇--Filter过滤器
- C语言复习---获取矩阵的对角和