Android 时间戳通过new Date转换为普通时间格式字符串不准确问题

文章目录

  • 前言
  • 一、问题引发
  • 二、不明所以
  • 三、灵光一闪,神奇的“L”
  • 四、总结


前言

int型 时间戳(秒)通过new Date转换后得到的字符串一直是1970年!!


以下是本篇文章正文内容

一、问题引发

1、获取系统的当前秒数为:1617032138
2、通过new Date(sec * 1000)转换为日期
3、通过格式化转换为日期字符串
Android 时间戳通过new Date转换为普通时间格式字符串不准确问题_第1张图片

4、得到的结果:1970-01-25 22:07:14

二、不明所以

这个结果,看着明显不对劲,在线转换一下,正常结果显然是:2021-3-29 23:35:38
Android 时间戳通过new Date转换为普通时间格式字符串不准确问题_第2张图片

三、灵光一闪,神奇的“L”

网络上查找了些资料,比如:时区设置等,都试了一下,没鸟用!
不知道为啥,脑中突然灵光一闪,就顺指加了个“L”,
也就是,new Date(sec * 1000L)。

没想到,居然出现了神奇的一幕:Android 时间戳通过new Date转换为普通时间格式字符串不准确问题_第3张图片

四、总结

虽然转换是正常了,问题得到了解决。
但是还是不明所以,在此做个记录的同时也给大家做个参考。
同时要是有知道为什么的童鞋们,欢迎留言解答~~

哦,对了~~

也欢迎大家关注我的个人公众号 “聊者说”,还有原创网络小说《异界卡徒》可以看~~

你可能感兴趣的:(java,android,date)