Java的Calendar类
Calendar类即日历类,常用于进行“翻日历”,比如下个月的今天是哪天
示例 1 : Calendar与Date进行转换
采用单例模式获取日历对象Calendar.getInstance();
package date;//
import java.util.Calendar;
import java.util.Date;public class TestDate {public static void main(String[] args) {//采用单例模式获取日历对象Calendar.getInstance();Calendar c = Calendar.getInstance();//通过日历对象得到日期对象Date d = c.getTime();Date d2 = new Date(0);c.setTime(d2); //把这个日历,调成日期 : 1970.1.1 08:00:00}
}
示例 2 : 翻日历
add方法,在原日期上增加年/月/日
set方法,直接设置年/月/日
package date;import java.text.SimpleDateFormat;
//
import java.util.Calendar;
import java.util.Date;public class TestDate {private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");public static void main(String[] args) {Calendar c = Calendar.getInstance();Date now = c.getTime();// 当前日期System.out.println("当前日期:t" + format(c.getTime()));// 下个月的今天c.setTime(now);c.add(Calendar.MONTH, 1);System.out.println("下个月的今天:t" +format(c.getTime()));// 去年的今天c.setTime(now);c.add(Calendar.YEAR, -1);System.out.println("去年的今天:t" +format(c.getTime()));// 上个月的第三天c.setTime(now);c.add(Calendar.MONTH, -1);c.set(Calendar.DATE, 3);System.out.println("上个月的第三天:t" +format(c.getTime()));}private static String format(Date time) {return sdf.format(time);}
}
练习: Calendar
找出下个月的倒数第3天是哪天
答案:
package date;import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;public class TestDate {private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");public static void main(String[] args) {Calendar c = Calendar.getInstance();System.out.println("今天是:" + format( c.getTime()));//先翻到下下个月c.add(Calendar.MONTH,2);//设置到月初c.set(Calendar.DATE,1);//再往回翻3天c.add(Calendar.DATE,-3);Exception e;System.out.println("下个月倒数第三天是:" + format(c.getTime()));}private static String format(Date time) {return sdf.format(time);}
}