参数的单位是毫秒,从1970.1.1 00:00:00 GMT计时

参数的单位是毫秒,从1970.1.1 00:00:00 GMT计时

对于从1970年开始即使这点不知道跟时间有什么联系,还有为什么要乘1000可以得到日期,这个跟从什么时候开始计时有关系吗?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,

1、计算机时间是从1970年1月1日0点0分0秒开始算起的。很多编程语言起源于UNIX系统,而UNIX系统认为1970年1月1日0点是时间纪元,所以我们常说的UNIX时间戳是以1970年1月1日0点为计时起点时间的。

Date(long date) 构造方法是创建Date对象,其中参数date表示从1970年1月1日以来的指定毫秒数。例如new Date(1000);代表的时间就是1970年1月1日0点0时0分1秒

2、Date(long date)构造方法中date的单位是毫秒,而我们写的date(int seconds)方法中要求参数seconds是秒。所以需要将seconds乘以1000转换为毫秒。

如下:

http://img1.sycdn.imooc.com//climg/5f8126ca0910472008040212.jpg

祝学习愉快~

  • rock221 #1

    老师,为什么要转为毫秒呢,没看懂, 直接new Date() 不是获取当前的时间吗?

    如果要这样,还需要转换毫秒吗?return sdf.format(seconds) ,还需要*1000吗? 我测试了下好像还是需要的,因为sdf里面的参数也是毫秒吧, 都是通过毫秒来转换日期的吧。?  

    是不是将int转换成日期,或者转换成字符串,都要*1000啊。 固定用法。 

    2021-06-19 14:41:33
  • 同学你好

    1、因为因为这个方法是要将秒转化为字符串,参数的单位是秒,而new Date(long date)方法需要传入一个毫秒类型的参数,所以需要将秒转换为毫秒

    2、new Date()获取的是当前的时间,Date(long date)是获取从1970年1月1日以来的指定毫秒数

    3、是需要的,如果不*1000,传入的10相当于1970年1月1日0点0时0分10毫秒

    4、是的,一般情况下都需要将毫秒转为秒来参与转换

    祝学习愉快~


    2021-06-19 19:12:19
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师