如何计算1个月前的毫秒?

hel*_*one 1 java date

我想从1个月前的当前时间以毫秒计算.例如,如果日期是25.11.2016,那么我想以毫秒格式获得25.10.2016.如何以毫秒计算此日期?我认为下面的代码不能正常工作.

System.currentTimeMillis() - 1000*60*60*24*30 
Run Code Online (Sandbox Code Playgroud)

rko*_*egi 6

你可以这样使用:

Calendar c = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
c.add(Calendar.MONTH, -1);
long result = c.getTimeInMillis();
Run Code Online (Sandbox Code Playgroud)

请注意,System.currentTimeMillis()使用UTC,因此您需要使用相同的TimeZone创建Calendar实例.


Ang*_*ata 5

你可以这样做:

        Date d = new Date();
        Calendar c = new GregorianCalendar();
        c.setTime(d);
        c.add(Calendar.MONTH, -1);
        Date dOneMonthAgo = c.getTime();
        System.out.println("D: "+d+" dOneMonthAgo: "+dOneMonthAgo);
        long todayMillis = d.getTime();
        long oneMonthAgoMillis = dOneMonthAgo.getTime();
Run Code Online (Sandbox Code Playgroud)

我希望这有助于安吉洛