java遇到日期带T和Z,提示Unparseabledate:2021-08-31T12:56:33.000Z
(2021-08-30 22:45:44)
标签:
java日期 |
分类: java学习 |
使用vue-element-admin提交文章时,提交的日期“2021-08-31T12:56:33.000Z”这样的字符串!
SimpleDateFormat datestr=new
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
SimpleDateFormat sdf2 = new
SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str="";
try{
date=datestr.parse(display_time);
str =
sdf2.format(date);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(str);
SimpleDateFormat datestr=new
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");
上面这个时间格式就是带T和Z这种是ISODATE .
Z是表示0时区,
对我们国家来说, 采用北京时间, 处于东八区.UTC+8 , 所以,
带Z的时间格式, 转换成北京时间需要加上 8 个小时.
而T并不代表什么.这仅仅是分隔的ISO 8601相结合的日期时间格式要求.您可以将其读作Time的缩写.
零时区的Z代表,因为它与协调世界时(UTC)相差0 .
现在需要将其转换为日期格式,
Date date=new Date();
但是提示Unparseable date: "2021-08-31T12:56:33.000Z"
找了好久解决方法,终于找到了!
将SimpleDateFormat datestr=new
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");这里最后的Z改为X,即
在格式字符串的末尾使用X而不是Z:
yyyy-MM-dd'HH:MM:ss.SSSX
解析ISO-8601格式的时区偏移。
(仅当您使用Java7时有效。请参见此问题)。

加载中…