Java之时间格式转换
目的:将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之时间格式转换相关推荐
- java UTC时间格式转换
UTC时间格式样例:2018-09-28T16:00:00.000Z 本地时间格式样式:2018-09-28 24:00:00 将本地时间格式转换成UTC格式 public static String ...
- java datetime 转换_如何实现Java日期时间格式转换
Java日期时间以及日期相互转换 Java日期时间,以及相互转化,供大家参考,具体内容如下 package com.study.string; import java.text.ParseExcept ...
- java时间戳 时间格式转换与时差
时间戳代码 protected static Format format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");public ...
- java定义时间格式大全_Java时间格式转换大全
package com.date; import java.text.DateFormat; import java.text.ParseException; import java.text.Par ...
- java格式_java时间格式转换大全
Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate { /** * 获取现在时间 * * @ ...
- java时间格式转换_Java时间日期格式转换
突然忘记了时间格式怎么转换,特此做个记录 Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate ...
- java输出格林威治时间_Java之格林威治时间格式转换成北京时间格式
Java之格林威治时间格式转换成北京时间格式 /** * Copyright 2020. yaodouwang.com Studio All Right Reserved * * Create on ...
- Java ISO 8601时间格式转换
String pattern = "YYYY-MM-dd'T'HH:mm:ss.SSSZZ"; String timeStr=DateFormatUtils.format(new ...
- Java时间格式转换大全
Java时间格式转换大全import java.text.*; import java.util.Calendar; public class VeDate { /*** 获取现在时间* * @ret ...
- Java——时间戳和时间格式转换
时间戳(TimeStamp):通常是一个字符序列,唯一地标志某一刻的时间.Java 中时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数. 一.获取时间戳的方式 1.Sy ...
最新文章
- paddle深度学习框架中的FFT
- 参观云栖小镇体会_我院留学生赴云栖小镇参观学习
- Struts(十六):通过CURD来学习Struts流程及ModelDriven的用法
- 我肝了一个月,给你写出了这本Java开发手册。
- python中for循环语句格式_Python基础-10循环语句
- 【嵌入式】Libmodbus源码分析(二)-常用接口函数分析
- java学习(167):生产者消费者问题
- 通常情况下的中国剩余定理
- mysql update多个字段_常见的MySQL命令大全fourth
- wine运行软件检测不到u盘_PE吧“U盘助理”——启动U盘制作图文教程-
- .NET 指南:资源的名称
- Java设计模式-装饰者设计模式
- 【EJB基础】开发一个简单的EJB应用程序
- 计算机二级未来教育押题准吗,计算机二级快速通关秘籍,21%的合格率真相原来是这样!...
- Selenium下载与安装
- 企业网站制作中CMS系统的作用及现状
- 服务器vga连接笔记本显示器,为什么用vga线链接笔记本和显示器,显示器的画质根本没法直视...
- 谈谈网络蜘蛛 爬开心网001的一些体会
- 一文读懂POE交换机和普通交换机的区别
- 002-全屏视频背景