如何将当前日期转换为整数?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (664)

我想将当前日期转换为整数形式。默认情况下,它返回long。当我将long转换为整数,然后将整数值转换为日期意味着它显示1970年代的日期。

 int i = (int) new Date().getTime();
 System.out.println("Integer : " + i);
 System.out.println("Long : "+ new Date().getTime());
 System.out.println("Long date : " + new Date(new Date().getTime()));
 System.out.println("Int Date : " + new Date(i));

输出将变成

Integer : 1292838124
Long : 1345617601771
Long date : Wed Aug 22 12:10:01 IST 2012
Int Date : Fri Jan 16 04:37:18 IST 1970
提问于
用户回答回答于

问题是整数不够大,无法存储当前日期,所以需要使用Long。

日期在内部存储为自1970年1月1日以来的毫秒数。

最大整数值是2147483648,而自1970年以来的毫秒数目目前约为1345618537869

将最大整数值放入日期中,将产生1970年1月26日星期一。

按照下面的注释显示除以1000的代码:

    int i = (int) (new Date().getTime()/1000);
    System.out.println("Integer : " + i);
    System.out.println("Long : "+ new Date().getTime());
    System.out.println("Long date : " + new Date(new Date().getTime()));
    System.out.println("Int Date : " + new Date(((long)i)*1000L));

Integer : 1345619256
Long : 1345619256308
Long date : Wed Aug 22 16:37:36 CST 2012
Int Date : Wed Aug 22 16:37:36 CST 2012
用户回答回答于

为了获得当前日期为整数(10位数字),需要将新Date()。getTime()返回的长度除以1000。

这将在int范围内,直到2038年1月18日。

所属标签

可能回答问题的人

  • 学生

    3 粉丝476 提问7 回答
  • uncle_light

    5 粉丝518 提问6 回答
  • o o

    4 粉丝494 提问5 回答
  • 富有想象力的人

    3 粉丝0 提问5 回答

扫码关注云+社区

领取腾讯云代金券