1)Date类是经常会使用到的一个用来处理日期、时间的一个类。Date类是在java.util包下的Date类。
2)Date类的创建:
import java.util.Date;//引包 1. Date d =new Date();//创建一个代表当前时间的Date类对象。 2. Date d1=new Date(long Date)//创建一个Date类对象指定毫秒数的时间。
3)获取当前时间的毫秒数。
getTime():表示自从标准基准时间,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。可替换System.currentMills。
Date d =new Date(); d.getTime();//获取自1970.1.1到当前时间的毫秒数
1)Calendar类同样是经常会使用到的一个用来处理日期、时间的一个类。Calendar类是在java.util包下的Date类。
2)Calendar类的创建:
import.java.util.Calendar;//引包 Calendar c =Calendar.gerInstance();//创建一个表示当前时间的Calendar对象
3)Calendar类获取日期,时间
get(Calendar.):用来获取日期,时间。
import.java.util.Calendar; Calendar c = Calendar.getInstance(); c.get(Calendar.YEAR);//获取当前日期的年份 c.get(Calendar.MONTH);//获取当前日期的月份。**1月份为0 c.get(Calendar.DAY_OF_MONTH);//获取当前月份的天。 c.get(Calendar.HOUR_OF_DAY);//获取当前天的小时 c.get(Calendar.MINUTE);//获取当前的分钟 c.get(Calendar.SECOND);//获取当前的秒数
4)Calendar类设置日期,时间及日期的计算。
set():用来设置日期,日期。设置月份时一月份为0
add(计算的量,常量):用来计算日期。
before():判断对象日期是否在指定日期之前。
after():判断对象日期是否在直指定日期之后。
import.java.util.Calendar; Calendar c = Calendar.getInstance(); Calendar c1 =Calendar.getInstance(); c.set(2030,5,1);//设置c对象的日期为(2030.6.1) c.add(Calendar.YEAR,1);//c对象日期的年份加一年 2030 c1.add(Calendar.YEAR,-1);//当前日期的年份减一年 2020 System.out.println(c.before(c1));//c对象表示的日期是否在c1对象表示的日期之前。false System.out.println(c.after(c1));//c对象表示的日期是否在c1对象表示的日期之后。true
getTime():将Calendar类转为Date类。
compareTo():判断两个Calendar类表示的时间是否相等。
1)SimpleDateFormat类用来格式化时间,根据指定格式生成时间。
2)字符串与Date之间的转化。
/* * 字符串转Date */ public void stringToDate() throws ParseException { String d ="2021-11-11"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date =sdf.parse(d); System.out.println(date); } /* * Date转字符串 */ public void stringToDate() throws ParseException { Date date =new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String d = sdf.format(date); System.out.println(d); }
1)LocalDate类:用来获取和计算日期。
2)获取当前日期及年,月,日。
import java.time.LocalDate;//引包 LocalDate date = LocalDate.now();//获取当前日期 System.out.println(date.getYear());//获取当前的年 System.out.println(date.getMonth());//获取当前的月 System.out.println(date.getDayOfMonth());//获取当前的日
3)日期比较及判断是否为闰年。
compareTo():显示比较年份,如果年份不同,直接返回年份的差值。如果年份相同,再比较月份,如果如果月份不相同,返回月份的差值。如果月份也相同返回日期的差值。
equals():比较两个日期是否相同
import java.time.LocalDate;//引包 LocalDate date = LocalDate.now();//获取当前日期 LocalDate date2= LocalDate.parse("2030-11-10");//将字符串解析为LocalDate对象 System.out.println(date.compareTo(date2));//两个日期的年份/月份/日的差值 System.out.println(date.equals(date2));//判断两个日期是否相等:false System.out.println(date.isLeapYear());//判断date日期是否为闰年//false
4)日期计算
LocalDate date = LocalDate.now();//获取当前日期 date =date.plusMonths(3);//当前日期加3个月 System.out.println(date); date =date.minusMonths(3);//date日期减3个月 System.out.println(date);
5)LocalDate与Date之间的转换
Date转为LocalDate:
LocalDate转为Date:
1)LocalDate类:用来获取和计算时间。
2)获取当前时间及时间的运算:
import java.time.LocalTime;//引包 LocalTime t =LocalTime.now();//获取当前时间 System.out.println(t); System.out.println(t.plusHours(2));//当前时间加两小时 System.out.println(t.minusMinutes(5));//当前时间减五分钟
全球分为24个时区,相邻时区时间相差1个小时。比如北京处于东八时区,东京处于东九时区,北京时间比东京时间晚1个小时,而英国伦敦时间比北京晚7个小时(英国采用夏令时时,8月英国处于夏令时)。
比如此刻北京时间是2017年8月24日11:17:10,则东京时间是2017年8月24日12:17:10,伦敦时间是2017年8月24日4:17:10。
1)Period类:表示一段时间的年、月、日
2)判断两个日期相差的年/月/日。
import java.time.LocalDate;//引包 import java.time.Period;//引包 LocalDate startDate = LocalDate.parse("2021-04-05"); LocalDate endDate = LocalDate.parse("2021-05-05"); Period p =Period.between(startDate, endDate);//表示两个时间段之间的日期 System.out.println("年份相差多少年"+p.getYears());//判断年:0 System.out.println("月份相差多少月"+p.getMonths());//判断月:1 System.out.println("日相差多少日"+p.getDays());//判断日:0 long s =endDate.toEpochDay()-startDate.toEpochDay(); System.out.println("两个日期相差多少天"+s);//30
1)DateTimeFormat与SimpleDateFormat都是用来字符串与日期的转换
2)字符串转化为Date
输入一个人得出生日期,返回他、她的年龄?
public int age(String date) { LocalDate date1 =LocalDate.parse(date); LocalDate date2 =LocalDate.now();//当前日期 Period p =Period.between(date1, date2); return p.getYears(); }