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); } }
运行结果为:
留言以鼓励自己和看我博客的人:
每个人都应是守望者,守望我们的心智,我们的理想,以防它在生活中不知不觉地坠落、被操控和被自己遗忘。。。