**
结合API学习
**
1,long类型的日期计算
long now=System.currentTimeMillis();
//获得日期以毫秒计算,就是获取从现在到1970年的毫秒数
system.out.println("今年是那一年"+now/1000/60/60/24/365+1970);
2,Date型日期
注:所有Date类型都是long类型
Date date=new Date();
3,long类型和Date类型互相转化
long now=System.currentTimeMillis();
Date date1=new Date(now);
System.out.println(date1);
输出结果为:Sat Jul 27 11:44:26 CST 2019
4,Calendar日期类型(用来计算时间)
Calendar不能直接实例化,因为他是一个抽象类。使用的方法有两种:
1:通过子类GregorianCalendar实例化.
2:通过抽取他自己的抽象方法
public static void main(String[] args) {
Calendar cal1=new GregorianCalendar();//通过子类实例化
Calendar cal2=Calendar.getInstance();//通过抽取他自己的抽象方法
System.out.println(cal1);
System.out.println(cal2);
}
}
输出结果为:
java.util.GregorianCalendar[time=1564200353538,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=2019,MONTH=6,WEEK_OF_YEAR=30,WEEK_OF_MONTH=4,DAY_OF_MONTH=27,DAY_OF_YEAR=208,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=0,HOUR_OF_DAY=12,MINUTE=5,SECOND=53,MILLISECOND=538,ZONE_OFFSET=28800000,DST_OFFSET=0]
java.util.GregorianCalendar[time=1564200353538,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=2019,MONTH=6,WEEK_OF_YEAR=30,WEEK_OF_MONTH=4,DAY_OF_MONTH=27,DAY_OF_YEAR=208,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=0,HOUR_OF_DAY=12,MINUTE=5,SECOND=53,MILLISECOND=538,ZONE_OFFSET=28800000,DST_OFFSET=0]
运行结果是存在Map中的,需要通过键去获取值。
System.out.println("今年是:"+cal1.get(Calendar.YEAR)+"年");
运行结果为:今年是:2019年
5,Calendar用来计算时间
1,add的使用:用来计算过去时间与未来时间
public static void main(String[] args) {
Calendar cal1=new GregorianCalendar(); //通过子类实例化
Calendar cal2=Calendar.getInstance(); //通过抽取他自己的抽象方法
cal1.add(Calendar.YEAR, 5); //通过add方法在现阶段年份上增加5年
System.out.println("今年是:"+cal2.get(Calendar.YEAR)+"年,"+"五年后是:"+cal1.get(Calendar.YEAR)+"年");
cal1.add(Calendar.DATE, -10); //通过add方法在现阶段日期上减少10天
System.out.println("今天是:"+cal2.get(Calendar.DATE)+"号,"+"十天前是:"+cal1.get(Calendar.DATE)+"号");
}
输出结果:
今年是:2019年,五年后是:2024年
今天是:28号,十天前是:18号
2,set的使用(将日期设置为某一具体时间)
Calendar cal1=new GregorianCalendar(); //通过子类实例化
cal1.set(Calendar.YEAR, 2012); //将cal1设置为2012年
System.out.println("我在"+cal1.get(Calendar.YEAR)+"年读的高中");
输出结果:
我在2012年读的高中
6,SimpleDateFormat的使用
1,
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat() ;
String str1=sdf.format(date); //格式化日期,将日期转换成String类型
System.out.println(str1);
输出结果:19-7-28 下午5:54
2,以自己需要的格式输出
Date date1=new Date(); //定义化日期类型
//以自己需要的格式输出
SimpleDateFormat sdf1=new SimpleDateFormat("YYYY-MM-dd hh:mm:ss");
SimpleDateFormat sdf2=new SimpleDateFormat("YYYY/MM/dd");
String str2=sdf1.format(date1);
String str3=sdf2.format(date1);
System.out.println(str2);
System.out.println(str3);
输出结果为:
2019-07-28 10:01:47
2019/07/28
3,常见的格式
yyyy-MM-dd HH:mm:ss
yy-M-d
yyyy年MM月dd日