Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不含JODA的上个月的月末日期_Java_Date_Calendar - Fatal编程技术网

Java 不含JODA的上个月的月末日期

Java 不含JODA的上个月的月末日期,java,date,calendar,Java,Date,Calendar,我从请求中得到了一个日期,比如2014年8月15日,如何使用java lang.Calendar计算上一个月的结束日期(即2014年7月31日)。我们不使用乔达时间。也许这会有帮助 Calendar cal = Calendar.getInstance(); //Set the Calendar date to 1st of the current month cal.set(Calendar.DATE, 1); // Subtract a day from it

我从请求中得到了一个日期,比如2014年8月15日,如何使用java lang.Calendar计算上一个月的结束日期(即2014年7月31日)。我们不使用乔达时间。

也许这会有帮助

   Calendar cal = Calendar.getInstance();
   //Set the Calendar date to 1st of the current month
   cal.set(Calendar.DATE, 1);
   // Subtract a day from it
   cal.set(Calendar.DATE,cal.get(Calendar.DATE)-1);
   // Prints the previous month end date
   System.out.println(cal.get(Calendar.DATE));
日历
实例中,您可以通过

Date date = cal.getTime();
最后,您可以使用
SimpledateFormat
根据需要格式化日期

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
System.out.println( "The date is: "+  sdf.format(date));
希望有帮助

试试看

   c.add(Calendar.DAY_OF_MONTH, -(c.get(Calendar.DAY_OF_MONTH)));

您可以使用GregoriaCalendar构造函数。使用包含的开始日期和独占的结束日期更容易,因此结束日期可以将小时/分钟/秒/等设置为零。这里有1个非常简单的解决方案。1) 开始使用JODA。2) 升级到Java8。虽然对前者可能有政治上的反对,但反对后者要困难得多。我们也可以使用java.lang.Date吗?@Agasthya不,只有日历可以添加日期。但是,在调用add函数之后,您可以调用c.getTime(),得到一个java.util.Date.ok,谢谢。。我们如何检查日期是否不是月底日期,然后执行上述逻辑?为了简单起见,我们如何检查一天是否是月底?@Agasthya我将在您拥有的日期上添加一天,并查看两个日期的月份是否相同。我们也可以使用javal.lang.date执行相同的操作?@Agasthya没有
java.lang.Date
API。但是,您有
java.util.Date
。但是,用它来做这些操作不是一个好主意。