目的:将UTC时间转换为北京时间

Java提供了至少两种时间转换方式,
分别是  SimpleDateFormat   和   DateTimeFormatter这两者的区别是:第一种线程不安全,因此每次使用都需要 new 一个新的对象,执行效率较低。在多线程的场景下如果定义为静态变量被公共使用则会有线程不安全问题;第二种是Java8新出的功能,避免了线程不安全问题,可以被当做静态变量公共使用;

现使用上述两种方法实现UTC时间转UTC8(北京、上海时间)
上代码

方法1

 Date dateUTC = null;//定义UTC时间格式SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");sdf.setTimeZone(TimeZone.getTimeZone("GMT"));try {//解析字符串UTC时间Date类型dateUTC = sdf.parse(timestamp);}catch (ParseException ignored) {log.error("UTC time parse failed, UTC time is {}", timestamp);}//定义中国上海地区时间格式SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);simpleDateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));return simpleDateFormat.format(dateUTC);输入 timeStamp为字符串, 输出也为字符串
这里GMT == UTC

方法2

 //UTC时间格式public static final DateTimeFormatter timeFormatForUTC = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'");//上海时间格式public static final DateTimeFormatter timeFormatForChina = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");public static String conversionTimeFormat(String timestamp) {LocalDateTime dateUTC = LocalDateTime.parse(timestamp, timeFormatForUTC);ZonedDateTime dateZoneForUTC = ZonedDateTime.of(dateUTC, ZoneId.of("GMT"));return timeFormatForChina.format(dateZoneForUTC.withZoneSameInstant(ZoneId.of("Asia/Shanghai")));}完成

Java之时间格式转换相关推荐

  1. java UTC时间格式转换

    UTC时间格式样例:2018-09-28T16:00:00.000Z 本地时间格式样式:2018-09-28 24:00:00 将本地时间格式转换成UTC格式 public static String ...

  2. java datetime 转换_如何实现Java日期时间格式转换

    Java日期时间以及日期相互转换 Java日期时间,以及相互转化,供大家参考,具体内容如下 package com.study.string; import java.text.ParseExcept ...

  3. java时间戳 时间格式转换与时差

    时间戳代码 protected static Format format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");public ...

  4. java定义时间格式大全_Java时间格式转换大全

    package com.date; import java.text.DateFormat; import java.text.ParseException; import java.text.Par ...

  5. java格式_java时间格式转换大全

    Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate { /** * 获取现在时间 * * @ ...

  6. java时间格式转换_Java时间日期格式转换

    突然忘记了时间格式怎么转换,特此做个记录 Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate ...

  7. java输出格林威治时间_Java之格林威治时间格式转换成北京时间格式

    Java之格林威治时间格式转换成北京时间格式 /** * Copyright 2020. yaodouwang.com Studio All Right Reserved * * Create on ...

  8. Java ISO 8601时间格式转换

    String pattern = "YYYY-MM-dd'T'HH:mm:ss.SSSZZ"; String timeStr=DateFormatUtils.format(new ...

  9. Java时间格式转换大全

    Java时间格式转换大全import java.text.*; import java.util.Calendar; public class VeDate { /*** 获取现在时间* * @ret ...

  10. Java——时间戳和时间格式转换

    时间戳(TimeStamp):通常是一个字符序列,唯一地标志某一刻的时间.Java 中时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数. 一.获取时间戳的方式 1.Sy ...

最新文章

  1. paddle深度学习框架中的FFT
  2. 参观云栖小镇体会_我院留学生赴云栖小镇参观学习
  3. Struts(十六):通过CURD来学习Struts流程及ModelDriven的用法
  4. 我肝了一个月,给你写出了这本Java开发手册。
  5. python中for循环语句格式_Python基础-10循环语句
  6. 【嵌入式】Libmodbus源码分析(二)-常用接口函数分析
  7. java学习(167):生产者消费者问题
  8. 通常情况下的中国剩余定理
  9. mysql update多个字段_常见的MySQL命令大全fourth
  10. wine运行软件检测不到u盘_PE吧“U盘助理”——启动U盘制作图文教程-
  11. .NET 指南:资源的名称
  12. Java设计模式-装饰者设计模式
  13. 【EJB基础】开发一个简单的EJB应用程序
  14. 计算机二级未来教育押题准吗,计算机二级快速通关秘籍,21%的合格率真相原来是这样!...
  15. Selenium下载与安装
  16. 企业网站制作中CMS系统的作用及现状
  17. 服务器vga连接笔记本显示器,为什么用vga线链接笔记本和显示器,显示器的画质根本没法直视...
  18. 谈谈网络蜘蛛 爬开心网001的一些体会
  19. 一文读懂POE交换机和普通交换机的区别
  20. 002-全屏视频背景

热门文章

  1. 在YUI3下打印Panel内容
  2. web第二章 namp和massan扫描技术
  3. jdk、jre各版本下载
  4. Python3.6全栈开发实例[013]
  5. 《数据库原理MySQL》第三次上机实验
  6. 解密深圳IT人士的当前薪情【转自:中国it实验室】
  7. 想创业做社交产品?不妨先看看这篇文章
  8. 你就是北上广深的树先生
  9. 电力系统微型计算机继电保护2018,2018年4月高等教育自学考试电力系统微型计算机继电保护试题及答案.docx...
  10. renpy-视觉小说转换器-编程零基础写视觉小说