将一个月计算为“月”;介于;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。。介于:开始和:结束之间