public class TestCalendar {
// 日期也就是这了
public static void main(String[] args) {
// 获取当前年份、月份、日期
Calendar cale = null;
cale = Calendar.getInstance();
int year = cale.get(Calendar.YEAR);
int month = cale.get(Calendar.MONTH) + 1;
int day = cale.get(Calendar.DATE);
int hour = cale.get(Calendar.HOUR_OF_DAY);
int minute = cale.get(Calendar.MINUTE);
int second = cale.get(Calendar.SECOND);
int dow = cale.get(Calendar.DAY_OF_WEEK);
int dom = cale.get(Calendar.DAY_OF_MONTH);
int doy = cale.get(Calendar.DAY_OF_YEAR);
System.out.println("Current Date: " + cale.getTime());
System.out.println("Year: " + year);
System.out.println("Month: " + month);
System.out.println("Day: " + day);
System.out.println("Hour: " + hour);
System.out.println("Minute: " + minute);
System.out.println("Second: " + second);
System.out.println("Day of Week: " + dow);
System.out.println("Day of Month: " + dom);
System.out.println("Day of Year: " + doy);
// 获取当月第一天和最后一天
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String firstday, lastday;
// 获取前月的第一天
cale = Calendar.getInstance();
cale.add(Calendar.MONTH, 0);
cale.set(Calendar.DAY_OF_MONTH, 1);
Date time = cale.getTime();
firstday = format.format(cale.getTime());
// 获取前月的最后一天
cale = Calendar.getInstance();
cale.add(Calendar.MONTH, 1);
cale.set(Calendar.DAY_OF_MONTH, 0);
lastday = format.format(cale.getTime());
Date time2 = cale.getTime();
System.out.println(time);
System.out.println(time2);
System.out.println("本月第一天和最后一天分别是 : " + firstday + " and " + lastday);
// 获取当前日期字符串
Date d = new Date();
System.out.println("当前日期字符串1:" + format.format(d));
System.out.println("当前日期字符串2:" + year + "/" + month + "/" + day + " " + hour + ":" + minute + ":" + second);
SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println(format2.format(d));
}
}
解释:
Calendar中 DAY_OF_MONTH, DAY_OF_YEAR, DAY_OF_WEEK, DATE 的区别在于
如果只是的add方法执行,结果都一样,因为都是将日期+1就没有区别,在月的日期中加1,还是年的日期中加1,还是日期本身加1效果都一样
但是Calendar设置DAY_OF_MONTH和DAY_OF_YEAR的目的不是用来+1的
将日期加1,这通过cal1.add(Calendar.DATE,1)就可以实现了
DAY_OF_WEEK,用来获得当前日期是一周的第几天
DAY_OF_MONTH的主要作用是cal.get(DAY_OF_MONTH),用来获得这一天在是这个月的第多少天
DAY_OF_YEAR的主要作用是cal.get(DAY_OF_YEAR),用来获得这一天在是这个年的第多少天