mysql存储带T带Z的时间_java UTC时间格式化 时间带T Z

最近在调用一个国外的网站api,返回的json数据格式的时间如 2018-01-31T14:32:19Z 。时间字符串带T和Z。这时候需要根据业务来确认你是否要转时间为北京时间,不需要直接SimpleDateFormat即可,需要的设置相应时区再转。

简单介绍

1、UTC(协调世界时)又称世界统一时间、世界标准时间、国际协调时间。

2、GMT(格林尼治标准时间)一般指世界时

3、CST(中央标准时间)可视为美国、澳大利亚、古巴或中国的标准时间。

CST可以为如下4个不同的时区的缩写:

美国中部时间:Central Standard Time (USA) UT-6:00

澳大利亚中部时间:Central Standard Time (Australia) UT+9:30

中国标准时间:China Standard Time UT+8:00

古巴标准时间:Cuba Standard Time UT-4:00

Date:

尽管 Date 类打算反映协调世界时 (UTC),但无法做到如此准确,这取决于 Java 虚拟机的主机环境。

一些计算机标准是按照格林威治标准时 (GMT) 定义的,格林威治标准时和世界时 (UT) 是相等的。

UTC 和 UT 的区别是:UTC 是基于原子时钟的,UT 是基于天体观察的,两者在实际应用中难分轩轾。

闰秒是根据需要引入 UTC 的,以便把 UTC 保持在 UT1 的 0.9 秒之内,UT1 是应用了某些更正的 UT 版本。

DateFormat:

将日期表示为 Date 对象,或者表示为从 GMT(格林尼治标准时间)1970 年 1 月 1 日 00:00:00 这一刻开始的毫秒数

我的环境时区1

2

3

4

5

6

7

8

9

10

11//当前时间Date

Date now =new Date();

System.out.println(now);

//Wed Jan 31 23:32:03 GMT+08:00 2018

//例如我的环境时区为:(UTC+08:00)北京,重庆,香港特别行政区,乌鲁木齐(+0800)

SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");

System.out.println(sdf.getTimeZone());

System.out.println(sdf.format(now));

//sun.util.calendar.ZoneInfo[id="GMT+08:00",offset=28800000,dstSavings=0,useDaylight=false,transitiOns=0,lastRule=null]

//2018-01-31T23:32:03.469+0800

UTC转本地时间

时间带T Z

有时候看到世界带T Z (如:2018-01-31T14:32:19Z) UTC统一时间

T代表后面跟着是时间,Z代表0时区(相差北京时间8小时)

首先定义一个UTC时间为:2018-01-31T14:32:19Z1

2

3

4

5

6

7

8String utcTime ="2018-01-31T14:32:19Z";

SimpleDateFormat df =new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");

//设置时区UTC

df.setTimeZone(TimeZone.getTimeZone("UTC"));

//格式化,转当地时区时间

Date after = df.parse(utcTime);

System.out.println(after);

//Wed Jan 31 22:32:19 GMT+08:00 2018

再从Date转直观字符串1

2

3

4

5df.applyPattern("yyyy-MM-dd HH:mm:ss");

//默认时区

df.setTimeZone(TimeZone.getDefault());

System.out.println(df.format(after));

//2018-01-31 22:32:19

我的系统环境

6a975f5692d4d3113dd037fd1334426a.png

原创文章,转载请注明出处:https://www.weizhixi.com/user/index/article/id/70.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值