Calendar类常用方法(获取本周本月首尾时间)

Calendar类
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。

该类还为实现包范围外的具体日历系统提供了其他字段和方法。这些字段和方法被定义为 protected。

Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。Calendar 的 getInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化。Calendar rightNow = Calendar.getInstance()。

常用方法
1、add(int field,int amount) —— 根据日历的规则,为给定的日历字段添加或减去指定的时间量。

2、get(int field) —— 返回给定日历字段的值。

3、getinstance() —— 使用默认市区和语言环境获得一个日历。

4、getTime() —— 返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。

5、set(int field,int value) —— 将给定的日历字段设置为给定值。

6、setTime() —— 使用给定的 Date 设置此 Calendar 的时间。

代码实现

public class CalendarUtil {
	/**
	 * 通过Calendar获取当前时间
	 * @return
	 */
	public static String getDate(){
		Calendar calendar = Calendar.getInstance();
		String tempDate = "";
		int year = calendar.get(Calendar.YEAR);
		int month = calendar.get(Calendar.MONTH)+1;//获取到的月份范围是0-11,所以要+1
		int day = calendar.get(Calendar.DAY_OF_MONTH);
		tempDate = year+"年"+month+"月"+day+"日";
		return tempDate;
	}
	/**
	 * 通过Calendar获取下一年的当前时间
	 * @return
	 */
	public static String getNextYearDate(){
		Calendar calendar = Calendar.getInstance();
		calendar.add(Calendar.YEAR, 1);
		String tempDate = "";
		int year = calendar.get(Calendar.YEAR);
		int month = calendar.get(Calendar.MONTH)+1;
		int day = calendar.get(Calendar.DAY_OF_MONTH);
		tempDate = year+"年"+month+"月"+day+"日";
		return tempDate;
	}
	
	/**
	 * 获取本周的开始时间
	 * @return
	 */
	public static String getWeekStart(){
		Calendar calendar = Calendar.getInstance();
		int week = calendar.get(Calendar.DAY_OF_WEEK)-2;
		calendar.add(Calendar.DATE, -week);
		return DateUtil.DateToString(calendar.getTime())+" 00:00:00";
	}
	
	/**
	 * 获取本周的结束时间
	 * @return
	 */
	public static String getWeekEnd(){
		Calendar calendar = Calendar.getInstance();
		int week = calendar.get(Calendar.DAY_OF_WEEK);
		calendar.add(Calendar.DATE, 8-week);
		return DateUtil.DateToString(calendar.getTime())+" 23:59:59";
	}
	
	/**
	 * 获取本月的开始时间
	 * @return
	 */
	public static String getMonthStart(){
		Calendar calendar = Calendar.getInstance();
		calendar.set(Calendar.DATE, 1);
		return DateUtil.DateToString(calendar.getTime())+" 00:00:00";
	}
	
	/**
	 * 获取本月的结束时间
	 * @return
	 */
	public static String getMonthEnd(){
		Calendar calendar = Calendar.getInstance();
		calendar.set(Calendar.DATE, 1);
		calendar.add(Calendar.MONTH, 1);
		calendar.add(Calendar.DATE, -1);
		return DateUtil.DateToString(calendar.getTime())+" 23:59:59";
	}
	public static void main(String[] args) {
		System.out.println("当前时间:"+getDate());
		System.out.println("明年当前时间:"+getNextYearDate());
		System.out.println("本周开始时间:"+getWeekStart());
		System.out.println("本周结束时间:"+getWeekEnd());
		System.out.println("本月开始时间:"+getMonthStart());
		System.out.println("本月结束时间:"+getMonthEnd());
	}
}

在这里插入图片描述
转载https://blog.csdn.net/zh137289/article/details/84952002

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值