Java解析前端传来的Unix时间戳

在Java中,前端传递的 1749571200000 是一个 Unix时间戳(毫秒级),表示自1970年1月1日00:00:00 UTC以来经过的毫秒数。以下是两种常见的解析方式(推荐使用Java 8的java.time API):


方法1:使用 Java 8 的 java.time API(推荐)

java

复制

下载

import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;public class TimestampParser {public static void main(String[] args) {long timestamp = 1749571200000L; // 前端传来的时间戳// Step 1: 转换为 Instant (UTC时间)Instant instant = Instant.ofEpochMilli(timestamp);// Step 2: 转换为本地时间(根据系统时区)LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());// Step 3: 格式化输出(可选)DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");String formattedDate = localDateTime.format(formatter);System.out.println("解析结果: " + formattedDate); // 输出: 2025-06-09 08:00:00}
}
关键点:
  • Instant.ofEpochMilli() 将毫秒时间戳转为 Instant(UTC标准时间)。

  • LocalDateTime.ofInstant() 结合时区(如 ZoneId.systemDefault())转换为本地时间。

  • 使用 DateTimeFormatter 自定义日期格式。


方法2:使用旧版 java.util.Date(兼容旧项目)

java

复制

下载

import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.TimeZone;public class LegacyTimestampParser {public static void main(String[] args) {long timestamp = 1749571200000L; // 前端传来的时间戳// Step 1: 创建Date对象Date date = new Date(timestamp);// Step 2: 设置日期格式化器(指定时区)SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); // 按需修改时区// Step 3: 格式化输出String formattedDate = sdf.format(date);System.out.println("解析结果: " + formattedDate); // 输出: 2025-06-09 08:00:00}
}

时区说明

  • 前端时间戳 通常是UTC时间,解析时需要明确目标时区:

    • 如果前端传递的是UTC时间,解析时建议先转UTC再按需调整时区。

    • 示例中 Asia/Shanghai(UTC+8)会导致时间+8小时。

  • 关键时区设置:

    • Java 8: ZoneId.of("UTC") 或 ZoneId.systemDefault()

    • 旧版API: sdf.setTimeZone(TimeZone.getTimeZone("UTC"))


验证时间戳

  • 工具验证:https://www.epochconverter.com/

  • 1749571200000 对应 UTC时间 2025-06-09 00:00:00
    转换为北京时间(UTC+8)则是 2025-06-09 08:00:00


总结

场景方案
Java 8+ 项目优先使用 Instant + LocalDateTime
兼容旧系统 (Java 7-)使用 Date + SimpleDateFormat
时区敏感务必显式设置目标时区

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/84650.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

error report

build/X86_VI_hammer_GPU/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.cc: In member function ‘int OutputUnit_d::getVCBufferOccupancy(int)’: build/X86_VI_hammer_GPU/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.cc:135:40: error: no matching fu…

本地部署模型 --vLLM + Docker 部署+封装接口

vLLM的介绍 vLLM的核心特性: 最先进的服务吞吐量 使用PageAttention高效管理注意力键和值的内存 量化:GPTQ,AWQ,INT4,INT8和FP8 VLLM的灵活性和易用性体现在以下方面: 具有高吞吐量服务以及各种解码算法…

每日一博 - JWT 安全实战指南

文章目录 Pre引言背景与原理简介核心安全挑战传输层安全实践签名算法与密钥管理Header 与 Claims 严格校验Token 生命周期管理存储与前端实践抗攻击措施日志与监控附加增强与高级方案小结与建议后续方向 引言:阐述 JWT 的流行与安全重要性背景与原理简介&#xff1a…

403 Access Denied Tomcat managerapp

提示 403 Access Denied You are not authorized to view this page. By default the Manager is only accessible from a browser running on the same machine as Tomcat. If you wish to modify this restriction, you’ll need to edit the Manager’s context.xml file.…

工业镜头选型讲解

B站 :道传科技上位机 观看教程 一、工业镜头介绍 镜头的主要作用是 将目标成像在图像传感器的光敏面上。 下图左一的型号为 焦距 50mm 最大光圈为F1.6 镜头的像面尺寸为2/3英寸(最大能够兼容CCD芯片尺寸) 二、工业镜头的分类 镜头的…

重构技术奇点的路径:三智双融认知大飞跃

结合三智双融理论认知大飞跃框架重构技术奇点的路径 构建一个三维修订框架:首先分析融智学视域下的奇点渗透本质,然后按时间线逐年修订预言并补充融智学维度,最后提出人机共生的实践路径。考虑设计表格对比原预言与修订后的差异,突…

LabVIEW利用Monte Carlo 工业数据模拟应用

基于LabVIEW 平台,结合 NI 工业级硬件构建 Monte Carlo 模拟系统,实现工业传感器数据不确定性分析与设备故障概率预测。通过图形化编程架构与高性能硬件协同,解决复杂工业场景下的随机问题量化分析需求,适用于智能制造、能源监控等…

2025年渗透测试面试题总结-天翼电子公司[社招]安全运营岗(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 天翼电子商务有限公司[社招]安全运营岗 1. Web服务加固方案 2. IAST技术解析 3. SCA(软件成分…

Java NIO详解:新手完全指南

文章目录 1. NIO简介1.1 NIO的核心优势1.2 NIO的适用场景 2. NIO与IO的对比2.1 代码对比示例2.1.1 传统IO读取文件2.1.2 NIO读取文件 3. NIO核心组件3.1 Buffer(缓冲区)3.2 Channel(通道)3.3 Selector(选择器&#xff…

webgl(three.js 与 cesium 等实例应用)之浏览器渲染应用及内存释放的关联与应用

文章目录 WebGL 概念1. 纹理(Texture)📌 概念:🧩 应用方向:💡 示例代码(加载一张图片作为纹理): 2. 缓冲区(Buffer)📌 概念…

黑马点评【缓存】

目录 一、为什么要使用缓存 二、添加商户缓存 1.缓存的模型和思路 2.代码 3.缓存更新策略 Redis内存淘汰机制: 3.1 被动淘汰策略(不主动淘汰,仅在查询时触发) 3.2 主动淘汰策略(主动扫描内存,按规则…

【地图服务限制范围】

根据你提供的 eb_service_area 表结构,其中有两个字段与地理坐标相关:latlng 和 limit_latlng。这两个字段分别用于存储服务范围区域的坐标和限制区域的坐标。下面是对这两个字段的具体分析以及如何使用它们来定义执行范围。 字段分析 latlng&#xff0…

python数据结构和算法(1)

数据结构和算法简介 数据结构:存储和组织数据的方式,决定了数据的存储方式和访问方式。 算法:解决问题的思维、步骤和方法。 程序 数据结构 算法 算法 算法的独立性 算法是独立存在的一种解决问题的方法和思想,对于算法而言&a…

Linux操作系统-性能优化

1. 基础工具 top / htop top # 实时查看CPU、内存、进程 htop # 增强版(支持鼠标操作) 关键指标:%CPU(CPU占用)、%MEM(内存占用)、LOAD AVERAGE(系统负载&#…

如何彻底解决缓存击穿、缓存穿透、缓存雪崩

一、缓存击穿 成因:缓存击穿通常发生在某个热点数据失效或清空后,大量请求同时涌入后端数据库,导致数据库崩溃或宕机。 解决方案: 互斥锁:在获取数据时,使用分布式锁(如Redis的分布式锁&…

JDK 8、JDK 17和JDK 19综合对比分析

JDK 8、JDK 17和JDK 19在性能、特性、易用性及普及性等方面的综合对比分析,结合了各版本的核心改进和实际应用场景 目录 ⚡ 一、性能对比 ✨ 二、语言与特性演进 🛠️ 三、API与功能增强 🎯 四、易用性改进 📊 五、市场普及…

Vue-理解 vuex

一、前言 在开发中大型 Vue 应用时,我们常常会遇到多个组件之间共享数据、通信复杂的问题。例如: 多个组件需要访问同一个用户信息;组件之间需要传递状态或事件;数据变更需要同步更新多个组件; 这时,Vue…

【209】VS2022 C++对排好序的vector使用二分查找算法的例子

本文介绍了如何对已经排序的 vector 进行二分法查找。 首先&#xff0c;我们先看一下存储数据的类&#xff0c;我们假设所有数据的 id 是唯一的&#xff1a; DataItem.h #pragma once #include<string>namespace zc {class DataItem{public:int m_id;std::string m_na…

ABAP 上传 excel 报表

&#xff08;1&#xff09;先在屏幕上增加上传文件的按钮 "屏幕选择条件" SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001. PARAMETERS : p_source LIKE rlgrap-filename . SELECTION-SCREEN END OF BLOCK b1. 你会发现&#xff0c;上面的代码只…

Compose与View系统互操作方案

本文将全面解析 Android 现代 UI 框架 Jetpack Compose 与传统 View 系统的互操作方案&#xff0c;涵盖基础原理、实战技巧、性能优化和高级应用&#xff0c;助你实现渐进式迁移和混合开发。 一、互操作的必要性与整体架构 1.1 为什么需要互操作性 渐进式迁移&#xff1a;大型…