当前位置: 首页 > news >正文

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
时区敏感务必显式设置目标时区

相关文章:

  • Element-Plus:popconfirm与tooltip一起使用不生效?
  • 机器学习笔记【Week8】
  • C++11作用域枚举(Scoped Enums):从入门到精通
  • LeetCode Hot100刷题——三数之和
  • 直曲联合!【连续测量】让CAD多线段长度测量精准与效率双升级
  • C/C++ 面试复习笔记(5)
  • Vite 插件使用全攻略(含自动导入)
  • Codeforces Round 1029 (Div. 3)
  • QT 仿网易云项目
  • SQL-labs通关(23-38)
  • 自动化过程中,如何定位一闪而过的toast?
  • 精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
  • 什么是VR全景展示?VR全景展示的用途
  • SOC-ESP32S3部分:QA-关于唤醒词更改及配置操作步骤
  • IIC(I2C)通信隔离电路分享
  • SQL Server 手动收缩ldf文件
  • 记录:RK3588 PWM调试
  • 算法:模拟
  • 12.找到字符串中所有字母异位词
  • 镜像里切换为普通用户
  • 网上做问卷调查网站/微信管理系统登录入口
  • 淘宝属于什么类型的网站/石家庄网站建设seo公司
  • 怀柔网站整站优化公司/网站注册流程
  • 网站如何防注册机/市场调研模板
  • 用html做的游戏网站/建网站软件
  • 墨子学院seo/南宁百度推广排名优化