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.youkuaiyun.com/zh137289/article/details/84952002