Java教程

Java常用类-----日期类

本文主要是介绍Java常用类-----日期类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java常用类----日期类

  • 一.JAVA8前----日期类
    • 1.Date类
    • 2.Calendar类
    • 3.SimpleDateFormat类
  • 二.JAVA8+ ----日期类
    • 1.LocalDate
    • 2.LocalTime
    • 3.时区
    • 4.Period
    • 5.DateTimeFormat
    • 例题

一.JAVA8前----日期类

1.Date类

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到当前时间的毫秒数

2.Calendar类

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类表示的时间是否相等。

3.SimpleDateFormat类

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);
		    }

二.JAVA8+ ----日期类

1.LocalDate

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:
在这里插入图片描述

2.LocalTime

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));//当前时间减五分钟

3.时区

全球分为24个时区,相邻时区时间相差1个小时。比如北京处于东八时区,东京处于东九时区,北京时间比东京时间晚1个小时,而英国伦敦时间比北京晚7个小时(英国采用夏令时时,8月英国处于夏令时)。
比如此刻北京时间是2017年8月24日11:17:10,则东京时间是2017年8月24日12:17:10,伦敦时间是2017年8月24日4:17:10。
在这里插入图片描述

4.Period

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

5.DateTimeFormat

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();
	}
这篇关于Java常用类-----日期类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!