栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java-UTC时间戳格式化成年月日,UTC时间戳转成北京时间并格式化年月日

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java-UTC时间戳格式化成年月日,UTC时间戳转成北京时间并格式化年月日

java-UTC时间戳格式化北京时间

一、时间戳定义二、应用场景三、总结

一、时间戳定义
1、UTC时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总秒数
2、北京时间戳是指1970年01月01日08时00分00秒起至现在的总秒数

由此可知:北京时间 = UTC时间+8小时
二、应用场景
1、1641537092表示的是UTC时间戳,格式化成年月日时分秒。

解释:如下代码,我认为无论是UTC时间戳还是北京时间戳 格式化成年月日,只需要下面代码就行了,实际是错误的。

Long unixtimestamp = 1641537092L;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format1 = simpleDateFormat.format(new Date(unixtimestamp * 1000));
System.out.println(format1);//2022-01-07 14:31:32

正确写法:

Long unixtimestamp = 1641537092L;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
String format1 = simpleDateFormat.format(new Date(unixtimestamp * 1000));
System.out.println(format1);//2022-01-07 06:31:32
2、1641537092表示的是UTC时间戳,格式化成北京时间并转成年月日的形式。下面两种方式均可实现:
Long unixtimestamp = 1641537092L;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format1 = simpleDateFormat.format(new Date(unixtimestamp * 1000));
System.out.println(format1);//2022-01-07 14:31:32
Long unixtimestamp = 1641537092L + 8*60*60;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
String format1 = simpleDateFormat.format(new Date(unixtimestamp * 1000));
System.out.println(format1);//2022-01-07 14:31:32
三、总结

UTC时间戳转北京时间有两种方法
1、直接把UTC时间戳格式化成年月日,格式化时不设置时区,因为默认是北京时区。
2、把UTC时间戳加8小时后,格式化时区需要设置成UTC时区。
3、UTC时间 = 北京时间+8小时,转换的时候,一定要注意当前时区

注意:如果您理解不了这个概念,就按照我给的上面的例子,直接套用就行了,慢慢品!!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/703714.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号