Calendar类
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
System.out.println("cal: " + sdf.format(cal.getTime()));
System.out.println("YEAR :" + cal.get(Calendar.YEAR));
System.out.println("MONTH :" + cal.get(Calendar.MONTH));
System.out.println("DATE :" + cal.get(Calendar.DATE));
System.out.println("HOUR :" + cal.get(Calendar.HOUR));
System.out.println("MINUTE :" + cal.get(Calendar.MINUTE));
System.out.println("SECOND :" + cal.get(Calendar.SECOND));
System.out.println("MILLISECOND :" + cal.get(Calendar.MILLISECOND));
System.out.println("DAY_OF_MONTH :" + cal.get(Calendar.DAY_OF_MONTH));
System.out.println("DAY_OF_WEEK :" + cal.get(Calendar.DAY_OF_WEEK));
System.out.println("DAY_OF_WEEK_IN_MONTH :" + cal.get(Calendar.DAY_OF_WEEK_IN_MONTH));
System.out.println("DAY_OF_YEAR :" + cal.get(Calendar.DAY_OF_YEAR));
System.out.println("WEEK_OF_MONTH :" + cal.get(Calendar.WEEK_OF_MONTH));
System.out.println("WEEK_OF_YEAR :" + cal.get(Calendar.WEEK_OF_YEAR));
cal:
八月 2016
日 一 二 三 四 五 六
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
输出结果:
cal: 20160819 10:55:47
YEAR :2016 //年
MONTH :7 //月
DATE :19 //日,DAY_OF_MONTH的同义词
HOUR :10 //时 12-hour clock, [HOUR_OF_DAY] 24-hour clock
MINUTE :55 //分
SECOND :47 //秒
DAY_OF_MONTH :19 //当月的第19填
DAY_OF_WEEK :6 //所在星期的第6天
DAY_OF_WEEK_IN_MONTH :3 //按当月日期排,位于第3周。[1-7]-->1, [8-14]-->2
DAY_OF_YEAR :232 //当年的第232天
WEEK_OF_MONTH :3 //当月的第3周
WEEK_OF_YEAR :34 //当年的第34周
与get相对应的有set函数,例如设置时间为某个月的第一秒:
public static int getMonthStartTime(String dt) {
Date date = string2Date(dt, "yyyyMM");
Calendar cal = Calendar.getInstance();
if (date == null) {
return Integer.MAX_VALUE;
}
cal.setTime(date);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
date = cal.getTime();
return (int)(date.getTime() / 1000);
}
设置时间为某个月的最后一秒:
public static int getMonthEndTime(String dt) {
Date date = string2Date(dt, "yyyyMM");
Calendar cal = Calendar.getInstance();
if (date == null) {
return Integer.MIN_VALUE;
}
cal.setTime(date);
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) + 1);
cal.set(Calendar.DAY_OF_MONTH, 0);
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.MILLISECOND, 999);
date = cal.getTime();
return (int)(date.getTime() / 1000);
}
string2Date函数如下:
public static Date string2Date(String str, String formatString) {
SimpleDateFormat formatter = new SimpleDateFormat(formatString);
str = StringUtil.null2Trim(str);
try {
return formatter.parse(str);
} catch (ParseException e) {
return new Date();
} catch (IllegalArgumentException e) {
System.out.println("format string Illegal:" + formatString);
return null;
}
}