Java程序返回一个Date设置为午夜前一个月的最后一个毫秒

使用getMaximum()Java中的方法返回给定日历字段的最大值。我们将使用它来设置分钟,秒和毫秒。

我们首先声明一个日历对象-

Calendar dateNoon = Calendar.getInstance();

现在,我们将小时,分钟,秒和毫秒设置为午夜前一个月的最后一个毫秒。

//小时,分钟和秒
calendar.set(Calendar.HOUR_OF_DAY, calendar.getMaximum(Calendar.HOUR_OF_DAY));
calendar.set(Calendar.MINUTE, calendar.getMaximum(Calendar.MINUTE));
calendar.set(Calendar.SECOND, calendar.getMaximum(Calendar.SECOND));
//毫秒
calendar.set(Calendar.MILLISECOND, calendar.getMaximum(Calendar.MILLISECOND));

现在,对以下月份和月份进行以下操作:

calendar.set(Calendar.DAY_OF_MONTH, 1); // first day of month
calendar.add(Calendar.MONTH, 1);
calendar.add(Calendar.DAY_OF_MONTH, -1);

以下是将Date设置返回午夜前一个月的最后一个毫秒的示例-

示例

import java.util.Calendar;
import java.util.GregorianCalendar;
public class Demo {
   public static void main(String[] argv) throws Exception {
      Calendar calendar = Calendar.getInstance();
      //小时,分钟和秒
      calendar.set(Calendar.HOUR_OF_DAY, calendar.getMaximum(Calendar.HOUR_OF_DAY));
      calendar.set(Calendar.MINUTE, calendar.getMaximum(Calendar.MINUTE));
      calendar.set(Calendar.SECOND, calendar.getMaximum(Calendar.SECOND));
      //毫秒
      calendar.set(Calendar.MILLISECOND, calendar.getMaximum(Calendar.MILLISECOND));
      calendar.set(Calendar.DAY_OF_MONTH, 1); // first day of month
      calendar.add(Calendar.MONTH, 1);
      calendar.add(Calendar.DAY_OF_MONTH, -1);
      System.out.println(calendar.getTime());
   }
}

输出结果

Fri Nov 30 23:59:59 UTC 2018