package calendar;
import java.util.Calendar;
import java.util.Date;
/**
* Calendar日历类是一个抽象类,不能实例化
* java.util.Calendar:日历类
* 实现类:java.util.GregorianCalendar
* @author Administrator
*
*/
public class CalendarDemo {
public static void main(String[] args) {
//获取Calendar对象
Calendar cal = Calendar.getInstance();
// System.out.println(cal.getClass().getName());
//输出cal
System.out.println(cal);
/*
* cal.getTime();
* 返回Date类型
* Calendar转Date
* 结果例:Wed Jul 08 14:08:09 CST 2020
*/
Date date = cal.getTime();
System.out.println(date);
/*
* void setTime(Date date);
* Date转Calendar
* 结果例:java.util.GregorianCalendar[time=0,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=1970,MONTH=0,WEEK_OF_YEAR=1,WEEK_OF_MONTH=1,DAY_OF_MONTH=1,DAY_OF_YEAR=1,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=8,HOUR_OF_DAY=8,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=28800000,DST_OFFSET=0]
*/
Date d = new Date(0);
cal.setTime(d);
System.out.println(cal);
/*
* int get(int field);
* 返回当前日期的各种信息包括年月日时分秒等
* 参数field指定获得日期信息的哪一个
* Calendar定义好了很多常量,使用定义好的常量即可
*/
//获得年 结果例:2020
int year = cal.get(Calendar.YEAR);
System.out.println(year);
//获得月(月是0-11,所以结果应该+1) 结果例:7
int month = cal.get(Calendar.MONTH)+1;
System.out.println(month);
//获得日 结果例:8
int dat = cal.get(Calendar.DATE);
System.out.println(dat);
//获得时(HOUR不能区分上下午,这里使用HOUR_OF_DAY) 结果例:14
int hour = cal.get(Calendar.HOUR_OF_DAY);
System.out.println(hour);
//获得分 结果例:21
int minute = cal.get(Calendar.MINUTE);
System.out.println(minute);
//获得秒 结果例:27
int second = cal.get(Calendar.SECOND);
System.out.println(second);
/*
* Calendar.DATE:月中的天
* Calendar.DAY_OF_MONTH:月中的天(同上一个效果)
* Calendar.DAY_OF_WEEK:周中的天
* Calendar.DAY_OF_YEAR:年中的天
*/
//周日为1,第一天
int dow = cal.get(Calendar.DAY_OF_WEEK);
System.out.println(dow);
//定义数组
String[] days = {"日","一","二","三","四","五","六"};
System.out.println("今天是星期"+days[dow-1]);
//年中的天
int doy = cal.get(Calendar.DAY_OF_YEAR);
System.out.println(doy);
/*
* 获得指定日期信息的最大值
* int getActualMaximum(int field);
*/
//今年一共有多少天
int daysum = cal.getActualMaximum(Calendar.DAY_OF_YEAR);
System.out.println(daysum);
//当月最大天数
int monthsum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(monthsum);
/*
* void set(int field,int value);
* 第一个参数是日期常量,第二个参数是值
*/
//调整年
cal.set(Calendar.YEAR, 2012);
//调整月(第二个参数可以用英文,或者用数字-1)
cal.set(Calendar.MONTH, Calendar.AUGUST);
cal.set(Calendar.MONTH, 8-1);
//调整日
cal.set(Calendar.DATE, 8);
//调整时
cal.set(Calendar.HOUR_OF_DAY, 23);
//调整分
cal.set(Calendar.MINUTE, 59);
//调整秒
cal.set(Calendar.SECOND, 58);
System.out.println(cal);
System.out.println(cal.getTime());
/*
* 以上只是修改了我们指定修改的部分,没有修改的信息依然没变
* 解决方案:cal.getTime()或add方法刷新修改内容
*/
System.out.println(cal);
/*
* add(int field,int amout)
* 第一个参数是增加的日期类型,第二个参数是增加的值
* 第二个参数为正数则增加,为负数则减少
*/
//查看3年2个月零5天之后的日子
cal.add(Calendar.YEAR, 3);
cal.add(Calendar.MONTH, 2);
cal.add(Calendar.DATE, 5);
System.out.println(cal.getTime());
//查询当周的周五是哪天
cal.set(Calendar.DAY_OF_WEEK,Calendar.FRIDAY);
System.out.println(cal.getTime());
}
}
Java如何获取日期以及日期计算---Calendar日历类
最新推荐文章于 2024-01-03 09:11:41 发布