加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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”这样的字符串!
上面这个时间格式就是带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时有效。请参见此问题)。


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有