yyyy-MM-dd'T'HH:mm:ss.SSS'Z'即UTC时间,与String日期转换

本文为博主原创,未经允许不得转载:

  最近在使用一个时间插件的时候,接收到的时间格式是 ’2017-11-27T03:16:03.944Z’ ,当我进行双向数据绑定的时候,由后台传过来的时间绑定到时间

控件上时,日期差了一天,在浏览器控制台发现我传输的时期是yyyy-MM-dd格式,当控件自己解析的时候,差了8个小时,日期就少了一天。

如上图所示,在网上搜了很多,发现这个日期格式为:UTC日期格式。

UTC日期即世界时,即格林尼治平太阳时,是表示地球自转速率的一种形式。

UTC就是世界标准时间,与北京时间相差八个时区。所以只要将UTC时间转化成一定格式的时间,再在此基础上加上8个小时就得到北京时间了。

当我在后台给前台控件绑定的时间格式为  yyyy-MM-dd'T'HH:mm:ss.SSS'Z' 格式的时候,解析就OK了。

所以在此列出UTC日期格式与String的日期格式转换方法:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class UTCTimeFormatTest {
    //UTC就是世界标准时间,与北京时间相差八个时区。所以只要将UTC时间转化成一定格式的时间,再在此基础上加上8个小时就得到北京时间了。
    public static void main(String[] args) throws ParseException {
        //Z代表UTC统一时间:2017-11-27T03:16:03.944Z
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
        Date date = new Date();
        System.out.println(date);
        String str = format.format(date);
        System.out.println(str);
SimpleDateFormat dayformat
= new SimpleDateFormat("yyyy-MM-dd"); String source ="2018-09-18";
//先将年月日的字符串日期格式化为date类型 Date day
= dayformat.parse(source);
     //然后将date类型的日期转化为UTC格式的时间 String str2
= format.format(day); System.out.println(str2); } }

运行结果为:

 

留言以鼓励自己和看我博客的人:

每个人都应是守望者,守望我们的心智,我们的理想,以防它在生活中不知不觉地坠落、被操控和被自己遗忘。。。

 

posted @ 2018-09-19 10:17  香吧香  阅读(71656)  评论(1编辑  收藏  举报