将当前日期转换为整数

我想将当前日期转换为整数值。默认情况下,它返回long。当我尝试将long转换为整数,然后将整数值转换为date时,表示它显示了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

有人可以帮帮我,如何将当前日期转换为整数(10位数字)?

回答:

问题是Integer的大小不足以存储当前日期,因此需要使用Long。

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

最大Integer值为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

以上是 将当前日期转换为整数 的全部内容, 来源链接: utcz.com/qa/431716.html

回到顶部