Convert Current date to integer

前端 未结 12 910
轮回少年
轮回少年 2020-12-05 04:35

I want to convert the current date to integer value. By default, it returns long. When I try to convert long to integer, and afterwards I convert the integer value to date,

12条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-05 04:46

    The issue is that an Integer is not large enough to store a current date, you need to use a Long.

    The date is stored internally as the number of milliseconds since 1/1/1970.

    The maximum Integer value is 2147483648, whereas the number of milliseconds since 1970 is currently in the order of 1345618537869

    Putting the maximum integer value into a date yields Monday 26th January 1970.

    Edit: Code to display division by 1000 as per comment below:

        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
    

提交回复
热议问题