-->
String today = "2013-01-14";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = format.parse(today);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} Calendar calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.setTime(date); System.out.println(calendar.get(Calendar.WEEK_OF_YEAR));

用到判断日期属于当年的第几周,用了一个有点复杂的代码。看Calendar类时,看到了WEEK_OF_YEAR,很实用。但是用时又出现了点小问题,比如2010-01-03,返回的结果是2(即2010年的第二个星期),原因是美国是以周日为每周的第一天。

我想到了更改星期的起始日,setFirstDayOfWeek(int value),传了一个1,想把周一设成第一天,但是没有起到效果。查文档后改成了Calendar.MONDAY就好使了,却不太清楚为什么用1不好使,用Calendar.MONDAY就行呢?

补:又查看了一下“常量字段值”,发现MONDAY的值根本就不是想当然的1,而是2。

SUNDAY :1

MONDYA :2

TUESDAY :3

WEDNESDAY :4

THURSDAY : 5

FRIDAY : 6

SATURDAY :7

java 获取当前时间,将天数减一天,返回Date.

SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
Date beginDate = new Date();
Calendar date = Calendar.getInstance();
date.setTime(beginDate);
date.set(www.sxzhongrui.com, date.get(www.sxzhongrui.com) - 1);
Date endDate = dft.parse(dft.format(date.getTime()));

java获取当前日期是星期几

1、使用Calendar类

/**
* 获取当前日期是星期几

*
* @param dt
* @return 当前日期是星期几
*/
public static String getWeekOfDate(Date dt) {
    //int[] weekDays = {7, 1, 2, 3, 4, 5, 6};
String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
Calendar cal = Calendar.getInstance();
cal.setTime(dt);
int w = cal.get(www.sxzhongrui.com_OF_WEEK) - 1;
if (w < 0)
w = 0;
return weekDays[w];
}

2、使用SimpleDateFormat格式化日期

Date date=new Date();

SimpleDateFormat dateFm = new SimpleDateFormat("EEEE");

dateFm.format(date);

注:格式化字符串存在区分大小写

对于创建SimpleDateFormat传入的参数:EEEE代表星期,如“星期四”;MMMM代表中文月份,如“十一月”;MM代表月份,如“11”;

yyyy代表年份,如“2010”;dd代表天,如“25”

int[] weekDays = {7, 1, 2, 3, 4, 5, 6};

-->