You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

毫秒级Epoch时间戳转字符串结果与预期不符问题咨询

毫秒级Epoch时间戳转换结果不符的原因排查

先明确核心问题:你的预期结果对应UTC时区的时间,但代码用了系统默认时区,导致转换结果出现偏移。

关键验证

1526581800000这个毫秒时间戳对应的UTC标准时间就是你要的18-May-2018 00:00:00。

问题根源

你代码里用了ZoneId.systemDefault(),也就是当前运行代码的系统默认时区。从实际输出17-May-2018 18:30:00反推,这个系统时区是UTC+5:30(比如印度标准时间IST)——当UTC时间是18号0点时,该时区的本地时间就是17号18:30,和你得到的结果完全匹配。

修复方案

  • 如果要得到UTC时区的结果,直接指定ZoneOffset.UTC替换系统默认时区:
LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(1526581800000), ZoneOffset.UTC);
System.out.println(localDateTime.format(DateTimeFormatter.ofPattern("dd-MMM-yyyy HH:mm:ss")));
  • 如果需要转换到其他特定时区,明确指定对应的ZoneId即可,比如东八区用ZoneId.of("Asia/Shanghai")。

内容的提问来源于stack exchange,提问作者Deepu Dubey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 20:40:29