import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
* 功能描述:
* @author 新增日期:2016-07-12
* @author 修改日期:2016-07-12
* @version 1.0.0
* @since 1.0.0
public class Test {
public static final SimpleDateFormat FMT_YMD = new SimpleDateFormat("yyyy-MM-dd");
public static void main(String[] args) {
getDate(parseDate("2016-06-20", "yyyy-MM-dd"),1);// 1 星期天下标
public static void getDate(Date date,int day){
int b = day ;//星期几 的下标 ,假如 星期三 ,下标就是4,星期日的下标是1,
//java实现一个月的最后一个星期天
Calendar instance = Calendar.getInstance();
//System.out.println(instance.getTime());
//System.out.println(instance.get(Calendar.THURSDAY));
instance.setTime(date);
instance.add(Calendar.MONTH, 1);//月份+1
instance.set(Calendar.DAY_OF_MONTH, 1);//天设为一个月的第一天
//System.out.println(instance.getTime());
instance.add(Calendar.DAY_OF_MONTH, -1);//本月最后一天
//System.out.println(instance.getTime());
int a = instance.get(Calendar.DAY_OF_WEEK);
System.out.println("a="+a);
instance.add(Calendar.DAY_OF_MONTH,
b - a > 0?-a-(7-b):b-a);//根据月末最后一天是星期几,向前偏移至最近的周几
//System.out.println(instance.get(Calendar.THURSDAY));
String date_str = formatDate(instance.getTime(), FMT_YMD);
System.out.println(date_str);
public static Date parseDate(String strDate, String pattern)
SimpleDateFormat df = new SimpleDateFormat(pattern);
return df.parse(strDate);
} catch (ParseException e)
e.printStackTrace();
return null;
public static String formatDate(Date date, SimpleDateFormat sdf)
return sdf.format(date);
报java.lang.IllegalArgumentException: Cannot convert 20131125 of type class java.lang.String to class java.util.Date
异常 因为${item.expDate}取出来是String类型,无法转换为Date类型
如下将能正常输出
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateTools {
* 日期转星期
* @param datetime
Calendar instance = Calendar.getInstance();
System.out.println(instance.getTime());
instance.add(Calendar.MONTH, 1);//月份+1
instance.set(Calendar.DAY_OF_MONTH, 1);//天设为一个月的第一天
System.out.printl
在 Java 中,可以使用 Calendar 类来获取本周星期一的日期。首先,可以使用 Calendar 类的 getInstance() 静态方法来获取一个 Calendar 对象,然后设置这个 Calendar 对象的日期为本周星期一。下面是一个示例代码:
Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
然后,就可以使用 Calendar 对象的 getTime() 方法来获取一个表示本周星期一的 Date 对象。下面是一个示例代码:
Date date = c.getTime();
最后,如果需要将本周星期一的日期格式化为字符串,可以使用 SimpleDateFormat 类。下面是一个示例代码:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = sdf.format(date);
希望这些信息能够帮助您。