当前位置:   article > 正文

如何将String字符串日期转换成Date类型_string转date

string转date

场景:尝试从List< Map<String,Object> >【例如从json解析出来的list:List<Map> logList = (List) maps.get("list");】取出其包含Date类型的数据,本以为使用(Date)强转可以转化发现不行,出现如下错误:

java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Date
抛出表示该代码试图将一个对象投射到一个子类,而该子类不是一个实例。

类似的这样强转会出现类似的问题:

Object x = new Integer(0);
System.out.println((String)x);

那怎么才能将String类型转换成我们想要的Date(比如yyyy-MM-dd HH:mm:ss)呢?
方法一:是使用DateFormat,它是一个抽象类,继承它的日期时间格式的子类,如 SimpleDateFormat,允许的格式(例如,日期→文本),分析(文本→日期),和归一化。日期表示为 Date对象或自1970年1月1日00:00:00 GMT毫秒, 建议可以看下JDK文档学习下。
这里举个解决办法的例子:

DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
o.setAddTime(simpleDateFormat.parse(String.valueOf(o.get("addTime"))));
  • 1
  • 2

注意:
SimpleDateFormat是非线层安全的类,阿里巴巴开发手册提示此类一般不要定义为 static 变量如果定义为static,必须加锁。

//每个线程都将拥有自己的SimpleDateFormat对象副本
private static final ThreadLocal<DateFormat> df = new ThreadLocal<DateFormat>() {
	@Override
	protected DateFormat initialValue() {
		return new SimpleDateFormat("yyyy-MM-dd");
	}
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

方法二: 使用org.apache.commons.lang3.time.DateUtils 【推荐使用】

1.通过尝试各种不同的解析器来解析表示日期的字符串,使用给定区域设置的默认日期格式符号。
public static Date parseDate(final String str, final Locale locale, final String... parsePatterns) throws ParseException {
        return parseDateWithLeniency(str, locale, parsePatterns, true);
}
2.通过尝试各种不同的解析器来解析表示日期的字符串
public static Date parseDate(final String str, final String... parsePatterns) throws ParseException {
        return parseDate(str, null, parsePatterns);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

举例:

Date date = DateUtils.parse("2018-06-16 10:00:00","yyyy-MM-dd HH:mm:ss");
  • 1

方法三: JDK8以上可以DateTimeFormatter 代替 SimpleDateFormat【DateTimeFormatter是线程安全的】

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDate date = LocalDate.parse("2018-06-16 10:00:00", formatter);
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/229699
推荐阅读
相关标签
  

闽ICP备14008679号