我想将当前日期转换为整数值。默认情况下,它返回 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
请大家帮帮我,如何将当前日期转换为整数(10位数字)?
最佳答案
问题是 Integer 不够大,无法存储当前日期,您需要使用 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
关于java - 将当前日期转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12067697/