com.ibm.icu.text.SimpleDateFormat 的陷阱
2013-10-23 09:46
633 查看
在项目中经常用到SimpleDateFormat,从未出过错!
今天发现了一个奇怪的问题,一个一直正常运行的线上服务,突然在今天日志时间记录超前了1小时,奇怪啊!找到该项目源码,测试了一下,的确时间超前了一个小时。明明现在是10:15分,格式化出来却是11:15分。同样的测试代码【main方法】拷到别的机器运行正常。在本机直接打印new Date()时间正常。说明是格式化时间(SimpleDateFormat)出错了,可是之前一直都没错过啊,SimpleDateFormat绝对不会出现这种错误的。无奈啊,现在确实是出错了,那就看看SimpleDateFormat吧!回到头部一看傻眼了,头部引入的是icu4j-2.6.1.jar包中的:
Java代码
import com.ibm.icu.text.SimpleDateFormat;
貌似不是我们经常用的:
Java代码
import java.text.SimpleDateFormat;
(rt.jar包)难道是这里错了。
带着将信将疑我们换成了“import java.text.SimpleDateFormat;”,果然,结果正确了。也不知道当初是否受到“ibm”字眼的影响,错误的选择了这个。稍后有时间研究一下ibm这个类吧。哎,留下此文以作纪念吧。
今天发现了一个奇怪的问题,一个一直正常运行的线上服务,突然在今天日志时间记录超前了1小时,奇怪啊!找到该项目源码,测试了一下,的确时间超前了一个小时。明明现在是10:15分,格式化出来却是11:15分。同样的测试代码【main方法】拷到别的机器运行正常。在本机直接打印new Date()时间正常。说明是格式化时间(SimpleDateFormat)出错了,可是之前一直都没错过啊,SimpleDateFormat绝对不会出现这种错误的。无奈啊,现在确实是出错了,那就看看SimpleDateFormat吧!回到头部一看傻眼了,头部引入的是icu4j-2.6.1.jar包中的:
Java代码
import com.ibm.icu.text.SimpleDateFormat;
貌似不是我们经常用的:
Java代码
import java.text.SimpleDateFormat;
(rt.jar包)难道是这里错了。
带着将信将疑我们换成了“import java.text.SimpleDateFormat;”,果然,结果正确了。也不知道当初是否受到“ibm”字眼的影响,错误的选择了这个。稍后有时间研究一下ibm这个类吧。哎,留下此文以作纪念吧。
相关文章推荐
- Call requires API level 24 (current min is 15): android.icu.text.SimpleDateFormat#SimpleDaormat
- java.lang.NoClassDefFoundError: Failed resolution of: Landroid/icu/text/SimpleDateFormat;
- 【Java 陷阱】SimpleDateFormat 时间格式化多线程异常
- Java——java.text.SimpleDateFormat的用法
- java时间格式化----java.text.SimpleDateFormat
- java.text.SimpleDateFormat的使用
- java.text.SimpleDateFormat
- java.text.SimpleDateFormat的使用
- JAVA学习笔记(四)substring、System.exit(1)、java.text.SimpleDateFormat、==、equals、StringBuffer、SQl动态查询
- java.text.SimpleDateFormat使用介绍
- java.text.SimpleDateFormat多线程下的问题
- java.text.SimpleDateFormat
- java.text.SimpleDateFormat的用法
- IBMJDK 1.5中SimpleDateFormat存在性能缺陷,使用FastDateFormat替换之。
- java.text Class SimpleDateFormat 格式详细介绍
- Java Date and Time系列(七)- java.text.SimpleDateFormat介绍
- 关于java.text.SimpleDateFormat的parse()方法存在的坑
- SimpleDateFormat 的格式定义
- 深入理解Java:SimpleDateFormat安全的时间格式化
- SimpleDateFormat date格式化util