时间格式详解,设置转换的操作详解?

营销圈公众号引导关注

全世界按经度划分为24个时区,每区经度15°,有零时区、东西各11个时区和12个时区。各时区使用其中央经线的地方平时为时区时间。我们生活中采用的时间是东八区时间, 东八区(UTC / GMT+08:00)是比世界协调时间(UTC)/ 格林尼治标准时间(GMT)快8小时的时区,理论上的位置是位于东经112.5度至127.5度之间,是东盟标准的其中一个候选时区。当格林尼治标准时间为0:00时,东八区的标准时间为08:00 ,也就北京时间。北京时间采用的是距离北京以东约340公里处的地方时间。北京时间使用东八区的区时,而非东八区由北京时间授时。北京时间是中国行政管理、生产、交通运输等工作的时间计量标准。时间格式详解,设置转换的操作详解?

GMT,即格林尼治标准时间,也就是世界时。 格林尼治是英国伦敦南郊原皇家格林尼治天文台所在地,地球本初子午线的标界处,世界计算时间和经度的起点。以其海事历史、作为本初子午线的标准点、以及格林尼治时间以其命名而闻名于世。 GMT的正午是指当太阳横穿格林尼治子午线(本初子午线)时的时间。但由于地球自转不均匀不规则,导致GMT时间不精确,现在已经不再作为世界标准世界使用。

UTC,英文名 Coordinated Universal Time ,即协调世界时,UTC是以原子时秒长为基础,在时刻上尽量接近于GMT的一种时间计量系统。国际原子时的准确度为每日数纳秒,而世界时的准确度为每日数毫秒。对于这种情况,一种称为协调世界时的折衷时标于1972年面世。为确保UTC与GMT相差不会超过0.9秒,在有需要的情况下会在UTC内加上正或负闰秒。UTC现在作为世界标准时间使用。所以,UTC 与 GMT 基本上等同,误差不差过0.9秒。

当在程序开发过程当中,使用一些国外封装的前台插件或做一些国际化的功能时,经常会用到世界协调时间(UTC)或格林尼治时间(GMT)。

作为一个中国的程序员,我们都会将时间转换为北京时间,以便进行逻辑处理和显示。我们经常看到或用到的时间格式是如2019-10-14 21:30:03这样的时间格式,但UTC的时间格式并非我们上面经常看到的那样时间格式,那UTC时间格式有哪些呢,以及如何进行格式转换呢,下面分别示例展示如何转换:

(1) UTC第一种时间格式:2020-01-01T21:30:03+08:00,中间的T标识时间,+08:00为标识东八区时间,其解析转换过程如下:

public static void main(String[] args) {
try {
String dateTime = "2020-01-01T21:30:03+08:00";
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss+08:00");
Date date= dateformat.parse(dataTime);
} catch (ParseException e) {
e.printStackTrace;}}

上面示例中的时间是带有时区标识的时间格式,其还有一种转换方法,也可以转换为正常的 Date 类型的日期格式,示例如下:

public static void main(String[] args) {
try {
String dateTime = "2020-01-01T21:30:03+08:00";
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX:00");
Date date= dateformat.parse(dataTime);
} catch (ParseException e) {
e.printStackTrace;}}

(2) 第二种时间格式:2019-10-14T13:41:45.223Z,类似这种时间格式进行时间格式转换。在军事中,协调世界时区会使用“Z”来表示。又由于Z在无线电联络中使用“Zulu”作代称,协调世界时也会被称为”Zulu time”。Z前面的三个数字表示毫秒。

public static void main(String[] args) {
try {
String dateTime = "2019-10-14T13:41:45.223Z";
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
Date date= dateformat.parse(dataTime);
} catch (ParseException e) {
e.printStackTrace;}}

上面示例中的时间格式还有一种转换方法,也可以转换为正常的 Date 类型的日期格式,示例如下:

public static void main(String[] args) {
try {
String dateTime = "2019-10-14T13:41:45.223Z";
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.ms'Z'");
Date date= dateformat.parse(dataTime);
} catch (ParseException e) {
e.printStackTrace;}}

(3) 第三种时间格式: Sat Oct 12 2019 14:19:40 GMT 0800 (中国标准时间),该时间是格林尼治时间格式的时间。对于这种格式,我们都可以认的出来,但很多时候并不知道如何将其转化为我们常用的Date类型的时间格式,可采用下面的方法进行转换。

public static void main(String[] args) {
try {
String dataTime = "Sat Oct 12 2019 14:19:40 GMT+0800 (中国标准时间)";
// 该pattern中的 E 标识星期,MMM标识月份
String data = dataTime.replace("GMT", "").replaceAll("\\(.*\\)", "");
// 将字符串转化为date类型,格式2016-10-12
SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd yyyy hh:mm:ss z", Locale.ENGLISH);
Date dateTrans = format.parse(data);SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 将其转化解析可的日期为:2019-10-12 14:19:40
String beijingTimeStr = formatDate.format(dateTrans);} catch (ParseException e) {
e.printStackTrace;}}

还有一种和上面时间格式类似的时间格式,同样可进行时间转换,也可以指定某时间进行时间格式转换。

示例如下:

public static void main(String[] args) {
try {
// 和上面的时间格式相比少了 + 号
String dataTime = "Sat Oct 12 2019 14:19:40 GMT 0800 (中国标准时间)";
// 该pattern中的 E 标识星期,MMM标识月份
SimpleDateFormat dateformat = new SimpleDateFormat("E MMM dd yyyy HH:mm:ss z", Locale.ENGLISH);
// 此处解析获得的时间为伦敦时间,即格林尼治时间,若获取北京时间还需要加8个小时
Date date= dateformat.parse(dataTime);
} catch (ParseException e) {
e.printStackTrace;
}
}

上面的示例中采用 Locale指定时区,进行时区之间的时间转换。 Locale 表示地区,每一个Locale对象都代表了一个特定的地理、政治和文化地区。在操作 Date, Calendar等表示日期/时间的对象时,经常会用到;因为不同的区域,时间表示方式都不同。 同理,也可以指定其他时区进行时间转换。如 CHINA,JAP,UK, FRENCH 等等。

UTC 和 GMT 在我们开发的过程中经常会遇到,尤其是做一些国际化功能的时候。因为应用的程序和功能需要考虑在不同的时区进行运行,掌握UTC ,GMT 与北京时间之间的相互转换,可以极大的提高我们的开发效率。

好了,这篇文章的内容营销圈就和大家分享到这里,如果大家对网络推广引流和网络创业项目感兴趣,可以添加微信:Sum8338 备注:营销圈引流学习,我拉你进直播课程学习群,每周135晚上都是有实战的推广引流技术和网络创业项目课程分享,当然是免费学!

版权声明:本站部分文章来源互联网用户自发投稿,主要目的在于分享信息,版权归原作者所有,不承担相关法律责任。如有侵权请联系我们反馈邮箱yingxiaoo@foxmail.com,我们将在7个工作日内进行处理,如若转载,请注明本文地址:https://www.yingxiaoo.com/176434.html