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));
    }
}

 

posted @ 2018-08-13 17:14  生心无住  阅读(538)  评论(0编辑  收藏  举报