判断当前日期是星期几:
这个是转载来的方法,里面的getYear()、getMonth()、getDay()方法已经过期,再往下有个我自己写的方法。
需要导入的包:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public static int dayForWeek(String pTime) throws Throwable {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date tmpDate = format.parse(pTime);
Calendar cal = new GregorianCalendar();
cal.set(tmpDate.getYear(), tmpDate.getMonth(), tmpDate.getDay());
return cal.get(Calendar.DAY_OF_WEEK);
}
自己写的方法:
/*
* 传入的日期转换成星期几
*/
public static String dateToWeekday(Date changeDate){
String[] weekdays = { "周日", "周一", "周二", "周三", "周四", "周五", "周六" };
if(changeDate == null) {
throw new MyException("传入时间为Null");
}
Calendar cal = Calendar.getInstance();
cal.setTime(changeDate);
int numOfWeek = cal.get(Calendar.DAY_OF_WEEK) - 1;
return weekdays[numOfWeek];
}
判断当前日期是当年第几周:
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