将一个月计算为“月”;介于;java中的句号

将一个月计算为“月”;介于;java中的句号,java,calendar,timestamp,Java,Calendar,Timestamp,我想选择创建日期在给定月份的第一天和最后一天之间的记录。我使用以下方法计算月的开始和结束日期: “月”只是时间范围内的一个随机日期 Calendar cal = Calendar.getInstance(); cal.setTime(month); int endday = cal.getActualMaximum(Calendar.DAY_OF_MONTH); int actualmonth = cal.get(Calendar.MONTH) + 1; int year = cal.get(C

我想选择创建日期在给定月份的第一天和最后一天之间的记录。我使用以下方法计算月的开始和结束日期:

“月”只是时间范围内的一个随机日期

Calendar cal = Calendar.getInstance();
cal.setTime(month);
int endday = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
int actualmonth = cal.get(Calendar.MONTH) + 1;
int year = cal.get(Calendar.YEAR);

Date begin = format.parse("01." + actualmonth + "." + year);
Date end = format.parse(endday + "." + actualmonth + "." + year);
当我想到这一点时,我实际上也必须设置白天,以避免在一个月的最后一天丢失记录


我觉得这有点不雅观,有人想要更好的解决方案吗?

我要做的是创建一个日历,将月份和年份设置为您想要的月份,将日期设置为1,将小时、分钟和毫秒设置为零。然后将日期作为开始范围。然后我加上一个月,然后减去一毫秒。将日期作为您的最终范围

  Calendar dateCal = Calendar.getInstance();
  dateCal.set(Calendar.MONTH, month);
  dateCal.set(Calendar.YEAR, year);
  dateCal.set(Calendar.HOUR_OF_DAY, 0);
  dateCal.set(Calendar.MINUTE, 0);
  dateCal.set(Calendar.SECOND, 0);
  dateCal.set(Calendar.MILLISECOND, 0);
  Date startDate = dateCal.getTime();

  dateCal.add(Calendar.MONTH, 1)
  dateCal.add(Calendar.MILLISECOND, -1);
  Date endDate = dateCal.getTime();

Calendar类中有一些方法可用于获取月份的第一天和最后一天:

getActualMaximum(Calendar.DAY_OF_MONTH)
getActualMinimum(Calendar.DAY_OF_MONTH)

好的,用保罗的例子解决了这个问题:

Calendar cal = Calendar.getInstance();
cal.setTime(month);
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.getActualMinimum(Calendar.DATE), 0, 0, 0);
cal.set(Calendar.MILLISECOND, 0);
Date begin = cal.getTime();
cal.add(Calendar.MONTH, 1);
cal.add(Calendar.MILLISECOND, -1);
Date end = cal.getTime();

谢谢大家

您是从数据库中选择记录的吗?是的,使用select。。介于:开始和:结束之间