SimpleDataFormat 线程不安全解决
SimpleDataFormat 是我们常用的时间转换工具,我再spark中使用sdf对时间戳进行转换,发现转化出的时间有异常,原来sdf是线程不安全的,
改用joda time,错误消失,样例如下
<dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.9.9</version> </dependency>
package com.ideal.test; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; import java.util.Date; public class Test { final DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyyMMddHHmmss"); public Date convert(String source){ DateTime d = fmt.parseDateTime(source); return d.toDate(); } public static void main(String[] args) { Test test = new Test(); System.out.println(test.convert("20181001121212")); DateTime dt = new DateTime(1530278248000L); System.out.println(dt.toString(test.fmt)); } }
欢迎转载,不必注明出处