时间工具类
import java.time.OffsetDateTime; import java.time.ZoneId; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; /** * 解析带时区的时间字符串并格式化 */ public class TimeFormatConverter { // 目标格式化样式可根据需求修改 public static final String TARGET_PATTERN yyyy-MM-dd HH:mm:ss; // 目标时区默认转成东八区/北京时间可根据需求修改 public static final ZoneId TARGET_ZONE ZoneId.of(Asia/Shanghai); /** * 核心方法解析ISO格式时间字符串 → 转换时区 → 格式化 * param timeStr 原始时间字符串如2026-03-10T01:55:59.1690000 * param targetPattern 目标格式如yyyy-MM-dd HH:mm:ss * param targetZone 目标时区如Asia/Shanghai * return 格式化后的时间字符串 */ public static String convertIsoTime(String timeStr, String targetPattern, ZoneId targetZone) { if (timeStr null || timeStr.isEmpty()) { return ; } try { // 步骤1解析原始ISO时间字符串兼容0000/UTC时区格式 // 先处理格式将0000替换为00:00符合OffsetDateTime解析要求 String standardIsoStr timeStr.replaceFirst((\\\\d{2})(\\d{2})$, $1:$2); OffsetDateTime offsetDateTime OffsetDateTime.parse(standardIsoStr); // 步骤2转换为目标时区比如从UTC0转成UTC8 ZonedDateTime targetZonedTime offsetDateTime.atZoneSameInstant(targetZone); // 步骤3格式化为目标字符串 DateTimeFormatter formatter DateTimeFormatter.ofPattern(targetPattern); return targetZonedTime.format(formatter); } catch (DateTimeParseException e) { throw new IllegalArgumentException(时间字符串解析失败原始字符串 timeStr, e); } } // 简化方法使用默认目标格式和时区东八区 yyyy-MM-dd HH:mm:ss public static String convertIsoTime(String timeStr) { return convertIsoTime(timeStr, TARGET_PATTERN, TARGET_ZONE); } // 测试示例 public static void main(String[] args) { // 原始时间字符串UTC0时区 String originalTimeStr 2026-03-10T01:55:59.1690000; // 转换为东八区的 yyyy-MM-dd HH:mm:ss 格式 String formattedTime convertIsoTime(originalTimeStr); System.out.println(原始时间UTC0 originalTimeStr); System.out.println(格式化后UTC8 formattedTime); // 输出2026-03-10 09:55:59 // 自定义格式示例只保留年月日 String customFormat convertIsoTime(originalTimeStr, yyyy-MM-dd, TARGET_ZONE); System.out.println(自定义格式年月日 customFormat); // 输出2026-03-10 } }

相关新闻

Tree Traversals Again

Tree Traversals Again

一个中序遍历的非递归实现可以使用栈。 例如,假设对一棵 6 个节点(键值编号 1 到 6)的二叉树进行中序遍历,其栈操作序列为: push(1); push(2); push(3); pop(); pop(); push(4); pop(); pop(); push(5); push(6); pop(…

2026/5/17 11:51:34 阅读更多 →
Java泛型

Java泛型

Java泛型的基本概念泛型是Java SE 5.0引入的特性,允许在定义类、接口或方法时使用类型参数。泛型的核心目的是提高代码的类型安全性和复用性,避免强制类型转换。泛型的优势类型安全:编译时检查类型,减少运行时错误。 代码复用&…

2026/5/17 11:51:31 阅读更多 →
MySQL数据库CRUD(2)

MySQL数据库CRUD(2)

一、SELECT 进阶:指定列与表达式查询1. 指定列查询我们可以只查询表中需要的列,而不是 * 代表的所有列,这样更高效:sql-- 查询学生的 id、姓名和语文成绩 SELECT id, name, chinese FROM exam;列名的顺序可以随意排列,…

2026/7/4 13:26:05 阅读更多 →

最新新闻

Dify实战:从零构建生产级AI应用的工作流与RAG优化指南

Dify实战:从零构建生产级AI应用的工作流与RAG优化指南

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 如果你最近在尝试把大语言模型(LLM)的能力真正用起来,而不是停留在聊天对话,大概率会遇…

2026/7/5 2:42:48 阅读更多 →
webMAN MOD:PS3 上的一站式管理插件

webMAN MOD:PS3 上的一站式管理插件

文章目录webMAN MOD:PS3 上的一站式管理插件webMAN MOD:PS3 上的一站式管理插件 webMAN MOD 是一个 PlayStation 3 的自制插件,从 DeanK 的 webMAN/sMAN 分支而来,在原有基础上增加了大量功能,目前在 GitHub 上有 1,7…

2026/7/5 2:42:48 阅读更多 →
企业微信二次开发实战:API、外部群与自动化应用指南

企业微信二次开发实战:API、外部群与自动化应用指南

引言 企业微信作为腾讯推出的企业级办公平台,其开放的API生态为开发者提供了丰富的二次开发能力。通过企业微信二次开发,企业能够将内部业务流程、客户服务与协同办公深度整合,构建定制化的数字化解决方案。本文将聚焦于企业微信API、企业微…

2026/7/5 2:40:47 阅读更多 →
VMPDump实战指南:动态脱壳VMProtect 3.x的原理与逆向分析

VMPDump实战指南:动态脱壳VMProtect 3.x的原理与逆向分析

1. 项目概述:为什么我们需要VMPDump?在逆向工程和安全研究的圈子里,VMProtect(简称VMP)一直是个让人又爱又恨的存在。爱的是它强大的保护能力,恨的也是它强大的保护能力。尤其是到了3.x版本,其引…

2026/7/5 2:36:47 阅读更多 →
基于SpringBoot的合同管理系统与实现

基于SpringBoot的合同管理系统与实现

选题背景 在当今数字化、信息化高速发展的时代背景下,企业运营与管理正经历着深刻的变革。合同作为企业对外合作、对内管理、明确各方权利义务的核心法律文件与商业凭证,其管理水平直接关系到企业的经营效率、风险控制能力与合规性。传统的人工纸质合同管…

2026/7/5 2:34:45 阅读更多 →
在STM32上跑通TinyML:从理论到实践的技术指南

在STM32上跑通TinyML:从理论到实践的技术指南

一、 引言:为什么要在STM32上部署TinyML?简要介绍TinyML(微型机器学习)的概念、优势及其在边缘计算中的重要性。阐述STM32作为主流微控制器平台,在资源受限环境下运行ML模型的挑战与机遇。二、 核心概念与准备工作2.1 …

2026/7/5 2:34:45 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻