Java日期转换问题,输入日期为字符串2014年10月

Java日期转换问题,输入日期为字符串2014年10月,java,date,java.util.date,Java,Date,Java.util.date,我需要实现输入日期(如2014年9月、2014年10月、2014年11月等)是否为当月的逻辑。我已经写了下面的逻辑来检查所选的一周是否是当前的一周,使用下面的方法,但无法实现当前月份 public static boolean isCurrentWeek(Date date, Date dateStart, Date dateEnd) { if (date != null && dateStart != null && dateEnd != null

我需要实现输入日期(如2014年9月、2014年10月、2014年11月等)是否为当月的逻辑。我已经写了下面的逻辑来检查所选的一周是否是当前的一周,使用下面的方法,但无法实现当前月份

public static boolean isCurrentWeek(Date date, Date dateStart, Date dateEnd)

 {

    if (date != null && dateStart != null && dateEnd != null) {


        if(date.equals(dateStart) || date.equals(dateEnd) ){


            return true;


        }else if (date.after(dateStart) && date.before(dateEnd)) {


            return true;


        }


        else {


            return false;

        }

    }
    return false;
}

为此,请尝试Apache Commons:

DateUtils.truncatedEquals( date, new Date(), Calendar.MONTH );
如果两个日期在同一个月内,则返回
true

编辑

也许是这样:

public static boolean isInCurrentMonth(String inputDateString) {
    SimpleDateFormat sdf = new SimpleDateFormat("MMM yyyy", Locale.ENGLISH);
    try {
        Date inputDate = sdf.parse(inputDateString);
        return DateUtils.truncatedEquals(new Date(), inputDate, Calendar.MONTH);
    } catch (ParseException e) {
        // error handling
    }
}

我认为您可以使用类似以下代码来解决问题:

String target = "Oct 2000";
DateFormat df = new SimpleDateFormat("MMM yyyy", Locale.ENGLISH);
try{
  Date date = df.parse(target);
  Calendar calendar = Calendar.getInstance();
  Calendar targetCalendar = Calendar.getInstance();
  targetCalendar.setTime(date);
  System.out.println(targetCalendar.get(Calendar.MONTH) == calendar.get(Calendar.MONTH));
 } catch (ParseException e){
 }

字符串
target
是您的输入,如“2014年9月”。此字符串被解析为
日期
,然后用于设置
日历
对象中的时间。第二个
日历包含当前时间。检查两个日历是否匹配他们的月份是通过
System.out.println
调用完成的。

您有本周的代码,并且您正在尝试找出当前月份的版本,到目前为止您尝试了什么?发布该代码。我的日历上有两个日期,startDate=“2014年10月”,结束日期也相同,因此我在字符串中获取该值,但无法确定如何获取所选月份的第一天和最后一天。基本上,我需要检查今天日期是否介于一个月的开始日期和结束日期之间。但由于我得到一个字符串“2014年10月”作为开始日期和结束日期,我无法将其解析为日期格式Stefan,您的代码只检查月份,而不检查年份,例如,如果我通过字符串target=“2000年10月”,当前月份为2014年10月,它将返回true。它还应该比较年份。我已经修改了如下内容,并且它的工作良好的公共静态布尔值isCurrentMonth(字符串dateStart)抛出了ParseException{DateFormat df=new SimpleDateFormat(“MMM yyyy”,Locale.ENGLISH);Date-Date=df.parse(dateStart);Calendar-Calendar=Calendar.getInstance();Calendar targetCalendar=Calendar.getInstance();targetCalendar.setTime(date);return(targetCalendar.get(Calendar.MONTH)=Calendar.get(Calendar.MONTH)&&targetCalendar.get(Calendar.YEAR)=Calendar.get(Calendar.YEAR));}在您的问题中,您只要求在当月进行匹配(您写道:“是当前月份还是非当前月份”)。正如你已经知道的,代码可以很容易地扩展,以检查也为今年:)所以,我你认为这个解决方案为你工作,请投赞成票。