123

java遇到日期带T和Z,提示Unparseabledate:2021-08-31T12:56:33.000Z

2021-08-30 23:04 稿源:网畅天下  6855次访问

使用vue-element-admin提交文章时,提交的日期“2021-08-31T12:56:33.000Z”这样的字符串!

上面这个时间格式就是带T和Z这种是ISODATE .

Z是表示0时区,  

对我们国家来说, 采用北京时间, 处于东八区.UTC+8 , 所以,

带Z的时间格式, 转换成北京时间需要加上 8 个小时.

而T并不代表什么.这仅仅是分隔的ISO 8601相结合的日期时间格式要求.您可以将其读作Time的缩写. 零时区的Z代表,因为它与协调世界时(UTC)相差0 . 

现在需要将其转换为日期格式,

Date date=new Date();

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

但是提示Unparseable date: "2021-08-31T12:56:33.000Z"

找了好久解决方法,终于找到了!

将SimpleDateFormat datestr=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");这里最后的Z改为X,即

 SimpleDateFormat datestr=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");

在格式字符串的末尾使用X而不是Z:

yyyy-MM-dd'HH:MM:ss.SSSX

解析ISO-8601格式的时区偏移。

(仅当您使用Java7时有效。请参见此问题)。


有好的文章希望朋友们帮助分享推广,猛戳这里河洛伊哥

相关热点

查看更多