java - 在java中将一个月计算为 "between"期间

标签 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(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();

关于java - 在java中将一个月计算为 "between"期间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1509245/

相关文章:

java - 重绘后如何继续在图像上绘画?

Java SimpleDateFormat 返回 null,但仅在第二次调用时返回

javascript - Javascript 和 C# 计算的时间戳不同

java - 何时使用 Spring @ConfigurationCondition 与 @Condition?

java - 有多少对象符合垃圾收集条件?

java - 从日期转换为日历时,日期比实际日期少一天

java - 月份和 java.util.Formatter

php - Symfony 中的时差

mysql - 如何写mysql select获取每日峰值

java - 时间戳变得与日期格式一样长