关于时间格式 2016-08-9T10:01:54.123Z 20160809100154.123Z 处理方法
今天遇到了一个奇怪的时间格式
如以下格式,下面两种时间格式所表示的时间是同一个时间,这个不难理解
//UTC时间,世界标准时间
2016-08-9T10:01:54.123Z
20160809100154.123Z
如图所示,这是一张由网友提供的图片,里面显示的是时间
UTC时间转换为GSM时间 UTC时间转换为GSM时间
然后无论如何,这个奇怪的时间我们可能看不懂,但是我们最终要显示的时间是北京时间(如果你是其他国家的人就另当别论了哦)
那么下面我们就来简单介绍一下关于时间的一些基本知识:
协调世界时(英:Coordinated Universal Time ,法:Temps Universel Coordonné),又称世界统一时间,世界标准时间,国际协调时间。英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC。 世界标准时间UTC:GMT+0
世界时UT 即格林尼治时间,格林尼治所在地的标准时间。以地球自转为基础的时间计量系统。地球自转的角度可用地方子午线相对于地球上的基本参考点的运动来度量。为了测量地球自转,人们在地球上选取了两个基本参考点:春分点(见分至点)和平太阳,由此确定的时间分别称为恒星时和平太阳时。 但是格林尼治本地的时间比格林尼治平时,大一小时,也就是格林尼治本地的时间:GMT+1
通常我们在数据库中存放,或者给用户看的时间都是CST时间 北京时间CST:GMT+8
现在我们说说上面的时间
2016-08-9T10:01:54.123Z
20160809100154.123Z
首先字母T:他表示后面跟的时间
而最末尾的Z表示UTC统一时间
而123表示的毫秒,大家可以测试将123改为1230,最后得到的时间,秒会增加1秒
如上面第一个 表达式 2016-08-9T10:01:54.123Z
我们可以这样来获得一个CST(北京时间)时间,看如下代码:
String str ="2016-08-9T10:01:54.123Z";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS Z");
Date d = format.parse(str.replace("Z", " UTC"));//注意是空格+UTC
System.out.println(d);
这样我们就获得了一个本地的时间
最后我们得到的时间是:Tue Aug 09 18:01:54 CST 2016
而表达式 20160809100154.123Z
他的转换方式也是一样的,知识格式化时,将格式化字符串修改以下即可:yyyyMMddHHmmss.SSS Z
北京时间所属时区: UTC/GMT +8 格林威治标准时间所属时区: UTC/GMT +1
格林威治时间格式: Thu Oct 16 07:13:48 GMT 2015
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/200773.html原文链接:https://javaforall.cn