使用Calendar
set(int field ,int value):
- 用来设置“年/月/日/小时/分钟/秒/微秒”等值。
add(int field,int amount):
- add可以对Calendar的字段进行计算。如果需要减去值,可以使用负数。
getTime()
- 获取设置的日期
public class DateTest {
public static void main(String[] args) {
Calendar instance = Calendar.getInstance();
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//设置当前时间
instance.setTime(date);
System.out.println("当前时间: 「 " + format.format(date) + "」");
//前3个小时
instance.setTime(date);
instance.add(Calendar.HOUR,-3);
System.out.println("往前三个小时: 「 " + format.format(instance.getTime()) + "」");
//前5天
instance.setTime(date);
instance.add(Calendar.DATE,-5);
System.out.println("往前5天: 「 " + format.format(instance.getTime()) + "」");
//往前一周
instance.setTime(date);
instance.add(Calendar.WEEK_OF_MONTH,-2);
System.out.println("往前2周: 「 " + format.format(instance.getTime()) + "」");
//前4月
instance.setTime(date);
instance.add(Calendar.MONTH,-4);
System.out.println("往前4个月: 「 " + format.format(instance.getTime()) + "」");
//前1年
instance.setTime(date);
instance.add(Calendar.YEAR,-1);
System.out.println("往前1年: 「 " + format.format(instance.getTime()) + "」");
//后三个小时
instance.setTime(date);
instance.add(Calendar.HOUR,3);
System.out.println("往后3小时: 「 " + format.format(instance.getTime()) + "」");
//后7天
instance.setTime(date);
instance.add(Calendar.DATE,7);
System.out.println("往后7天: 「 " + format.format(instance.getTime()) + "」");
//后3个月
instance.setTime(date);
instance.add(Calendar.MONTH,3);
System.out.println("往后3个月: 「 " + format.format(instance.getTime()) + "」");
//后4年
instance.setTime(date);
instance.add(Calendar.YEAR,4);
System.out.println("往后4年: 「 " + format.format(instance.getTime()) + "」");
}
}
总结
- 先使用instance.setTime()方法设值
- 再使用instance.add(int field,int amount)设置想要获取的时间,field 枚举值,amount 正数为后,负数往前
Calendar.HOUR | 小时 |
Calendar.DATE | 天 |
Calendar.WEEK_OF_MONTH | 每月的周 |
Calendar.MONTH | 月 |
Calendar.YEAR | 年 |
Calendar.DAY_OF_MONTH | 每月的天数 |
3.使用instance.getTime()获取设置后的时间