方法一:

 public static void main(String[] args) {
// 假设这是从MySQL获取的UTC时间字符串
String utcTimeStr = "2024-09-30T16:00:00Z";
try {
// 解析UTC时间字符串
DateTime parsedDateTime = DateUtil.parse(utcTimeStr);
// 转换为指定时区时间
DateTime shanghaiDateTime = DateUtil.convertTimeZone(parsedDateTime, ZoneId.of("Asia/Shanghai"));
// 转换为GMT时间
DateTime gmtDateTime = DateUtil.convertTimeZone(parsedDateTime, ZoneId.of("Etc/GMT"));
// 格式化输出
System.out.println("格式化输出"+shanghaiDateTime);
// 输出GMT时间
System.out.println("输出GMT时间"+gmtDateTime);
// 格式化输出
String format1 = DateUtil.format(shanghaiDateTime, "yyyy-MM-dd HH:mm:ss");
String format2 = DateUtil.format(gmtDateTime, "yyyy-MM-dd HH:mm:ss");
// 输出转换后的时间字符串
System.out.println("格式化[Asia/Shanghai]输出"+format1);
// 输出GMT时间字符串
System.out.println("格式化[Etc/GMT]输出"+format2);
} catch (Exception e) {
System.err.println("时间解析或转换失败: " + e.getMessage());
}
}

控制台输出如下:

格式化输出2024-10-01 00:00:00
输出GMT时间2024-09-30 16:00:00
格式化[Asia/Shanghai]输出2024-10-01 00:00:00
格式化[Etc/GMT]输出2024-09-30 16:00:00

方法二:

 /**
* 时间字符串转换为指定时区时间字符串
* @param dateStr 时间字符串
* @param zoneId 时区ID
* @return 指定时区时间字符串
*/
private static String timeZoneConvert(String dateStr, String zoneId) {
DateTime parse = DateUtil.parse(dateStr);
log.info("原始时间:{}", parse);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);
// 设置时区:例如:Asia/Shanghai
sdf.setTimeZone(TimeZone.getTimeZone(zoneId));
String str = sdf.format(parse);
log.info("转换后时间:{}", str);
return str;
}
public static void main(String[] args) {
// UTC时间字符串转化为指定时区时间字符串
String dateStr = "2024-09-30T16:00:00Z";
// 时区ID
String zoneId = "GMT+8";
// 时间转换处理
String dateFormatStr = timeZoneConvert(dateStr, zoneId);
// 输出转换后的时间字符串
System.out.println("原始时间字符串:" + dateStr);
// 输出转换后的时间字符串
System.out.println("转换后的时间字符串:" + dateFormatStr);
}

控制台输出如下:

0:54:12.158 [main] INFO com.songwp.test.Test05 - 原始时间:2024-09-30 16:00:00
10:54:12.161 [main] INFO com.songwp.test.Test05 - 转换后时间:2024-10-01 00:00:00
原始时间字符串:2024-09-30T16:00:00Z
转换后的时间字符串:2024-10-01 00:00:00

java根据时区转换获取时间的方法的更多相关文章

  1. Java-Runoob-高级教程-实例-时间处理:04. Java 实例 - 时间戳转换成时间

    ylbtech-Java-Runoob-高级教程-实例-时间处理:04. Java 实例 - 时间戳转换成时间 1.返回顶部 1. Java 实例 - 时间戳转换成时间  Java 实例 以下实例演示 ...

  2. js(jQuery)获取时间的方法及常用时间类搜集

    获取时间的方法及常用时间类都是大家经常使用的,在本文为大家整理了一些,个人感觉还比较全,感兴趣的朋友可以收集下   复制代码代码如下: $(function(){ var mydate = new D ...

  3. 浅谈Java反射机制 之 获取类的 方法 和 属性(包括构造函数)

    上一篇 获取 类 的字节码文件 我们讲到了获取类的字节码文件的三种方法 第三种方法通过getClass("全路径名")获取字节码文件最符合要求 1.获取构造方法 先贴上我们要获取的 ...

  4. java字符串大小写转换的两种方法

    转载自:飞扬青春sina blogjava字符串大小写转换的两种方法 import java.io..* public class convertToPrintString {          pu ...

  5. Java向mysql中插入时间的方法

    ava向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明);部分资料参考网络资源  java向MySQL插入当前时间的四种方式 第一种:将java.util.Date类型的 ...

  6. Java从服务器上获取时间,动态在jsp页面显示

    Java获取服务器时间,动态显示到jsp页面,大家都是到Java只能获取一次,到页面的时间是静态的,不过通过js和Java的合作,巧妙地实现此功能 本人是给电视做系统,客户要求页面能显示时间,因为电视 ...

  7. Java反射机制 之 获取类的 方法 和 属性(包括构造函数)(Day_06)

    把自己立成帆,才能招来凤. 运行环境 JDK8 + IntelliJ IDEA 2018.3  本文中使用的jar包链接 https://files.cnblogs.com/files/papercy ...

  8. JavaScript创建和获取时间的方法

    一.获取时间常用方法 1.创建时间对象 var time=new Date() //创建当前的时间信息对象 var time1=new Date(2022,1,1,10,25,30) //创建2022 ...

  9. Java不同时区(timezone)之间时间转换

    最近出现一个问题是这样的:我们的系统在国外打印的日志时间由于时差关系和国内不一致,看起来不方便,希望国外的日志和国内保持一致,即:需要对不同时区的时间做转换调整,统一为国内时间. 一.关于时区的一些概 ...

  10. js(jQuery)获取时间的方法及常用时间类

    获取JavaScript 的时间使用内置的Date函数完成 var mydate = new Date();mydate.getYear(); //获取当前年份(2位)mydate.getFullYe ...

随机推荐

  1. [Linux]yum下载慢!!

    有全局代理,但是yum下载特别慢,怎么办? 确保/etc/yum.conf文件中代理配置的语法正确,包括代理服务器的地址和端口号,如下所示: proxy=http://your_proxy_serve ...

  2. 【Python自动化】之利用JS操作页面滚动条(新)

    如何操作页面中的滚动条,有以下几个方法: 一.查找可见元素进行滚动页面(通用) 方法一: ①移动到元素element对象的"顶端",与当前窗口的"顶部"对齐(默 ...

  3. Coursera, Big Data 5, Graph Analytics for Big Data, Week 1/2

    Graph表示 1. adjacency matrix最简单的一种表示:行是From 列是To, 这种表示是稀疏矩阵 2. 另一种表示,如下图,很多graph数据库用这种,是的数据库操作更有效率 us ...

  4. P7706 「Wdsr-2.7」文文的摄影布置

    题意 给定长度为 \(n\) 的数组 \(a\) 和 \(b\),支持单点修改,\(q\) 次区间查询 \(\max_{l\le i<k\le r} \{a_i + a_k - \min_{i& ...

  5. 【论文解读】transformer小目标检测综述

    一.简要介绍       Transformer在计算机视觉领域迅速普及,特别是在目标识别和检测领域.在检查最先进的目标检测方法的结果时,我们注意到,在几乎每个视频或图像数据集中,transforme ...

  6. Angular 18+ 高级教程 – Angular CLI

    前言 这篇会列出我开发中常用的 command. 并给予一些简单的说明 Command Format 先了解一下几个简单的 command 格式: 缩写 shortform 这个是完整版 ng gen ...

  7. 推荐3款卓越的 .NET 开源搜索组件库

    前言 最近有不少同学提问:.NET有哪些开源的搜索组件库可以推荐的吗?,今天大姚给大家推荐3款卓越的 .NET 开源搜索组件库,希望可以帮助到有需要的同学. Elasticsearch .NET El ...

  8. Element——前端样式美化

    Element 简介    Element 快速入门      https://element.eleme.cn/#/zh-CN/component/button Element 布局      ht ...

  9. map的线程安全,boost库读写锁的实现

       *************** map的线程安全 ********************  *  * 参考1  * map要实现线程安全必须要加锁,如果使用mutex会产生大量的线程等待,可以 ...

  10. cobalt strike安装教程

    将本地IP和密码填入:./teamserver 192.168.xx.xx 密码 启动成功