我自己解决了。贴出来和大家分享一下。如果程序有什么错误和更好的办法欢迎大家一起来探讨  System.out.println("根据周信息获取日期:"+tt.getDayByWeekInfo("200902",3,4)); //获取2009年2月第三周的星期四为几月几号
/**
 *根据月 周 星期 信息得到日期
 *@author xiaohunzhang
 *@parm YEARMONTH String 年月格式为yyyyMM(可根据需求自己调整)
 *@parm week_of_month int 第几周
 *@parm week_day int 星期几
 *2009-02-23
 */
public String getDayByWeekInfo(String YEARMONTH, int week_of_month,
                                  int week_day) {
    String str = "";
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String year = YEARMONTH.substring(0, 4);
    String month = YEARMONTH.substring(4, 6);
    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.YEAR, Integer.parseInt(year));
    cal.set(Calendar.MONTH, (Integer.parseInt(month)-1));    cal.set(Calendar.WEEK_OF_MONTH, week_of_month);
    switch (week_day) {
      case 0:
        cal.set(Calendar.DAY_OF_WEEK, 1);
        break;
      case 1:
        cal.set(Calendar.DAY_OF_WEEK, (week_day + 1));
        break;
      case 2:
        cal.set(Calendar.DAY_OF_WEEK, (week_day + 1));
        break;
      case 3:
        cal.set(Calendar.DAY_OF_WEEK, (week_day + 1));
        break;
      case 4:
        cal.set(Calendar.DAY_OF_WEEK, (week_day + 1));
        break;
      case 5:
        cal.set(Calendar.DAY_OF_WEEK, (week_day + 1));
        break;
      case 6:
        cal.set(Calendar.DAY_OF_WEEK, (week_day + 1));
        break;    }    str = sdf.format(cal.getTime());
    return str;
  }

解决方案 »

  1.   

    int year = 2009;
    int month = 2;
    int week = 3;
    int day = 4;

    Calendar calendar = Calendar.getInstance();
    calendar.set(calendar.YEAR, year);
    calendar.set(calendar.MONTH, month-1);
    calendar.set(calendar.WEEK_OF_MONTH, week);
    calendar.set(calendar.DAY_OF_WEEK, day+1);
      

  2.   

    如果格式固定的话,把每个数据提取出来
    使用Calendar cal = Calendar.getInstance();
    cal.set([Calendar.YEAR,Calendar.MONTH,Calendar.WEEK_OF_MONTH,Calendar.DAY_OF_WEEK_IN_MONTH],value)
    分别将数据设置进去
    得到日期格式:
    Date date = cal.getTime();
    得到字符串格式的日期:
    SimpleDateFormat format = new SimpleFormat("yyyy-MM-dd");
    String dateStr = format.format(cal.getTime());