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

本文记录了一个在Java中将int型时间戳转换为日期时遇到的问题,即转换结果始终显示为1970年。作者尝试了多种解决办法未果,直到在时间戳前添加了L,问题迎刃而解。文章总结了这一奇怪现象,并邀请读者分享其背后的原因。


前言

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


以下是本篇文章正文内容

一、问题引发

1、获取系统的当前秒数为:1617032138
2、通过new Date(sec * 1000)转换为日期
3、通过格式化转换为日期字符串
在这里插入图片描述

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

二、不明所以

这个结果,看着明显不对劲,在线转换一下,正常结果显然是:2021-3-29 23:35:38
在这里插入图片描述

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

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

没想到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聊者说

鼓励就是动力,谢谢打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值