时间日期类型:java8之前: Date 类型(java.util包下的Date)
Date date = new Date();//Date() 分配 Date对象并对其进行初始化,使其表示分配时间,测量 Date到毫秒
Date date2 = new Date(23749287403090L);//Date(long date) 分配 Date对象并初始化它以表示自标准基准时间(称为“纪元”)以来的指定毫秒数,即1970年1月1日00:00:00 GMT。
date2.getTime()//long getTime() 返回自此 Date对象表示的1970年1月1日00:00:00 GMT以来的毫秒数。
date2.after(date)//boolean after(Date when) 测试此日期是否在指定日期之后。
date2.before(date)//boolean before(Date when) 测试此日期是否在指定日期之前。
//static Date from(Instant instant) 从 Instant对象获得 Date的实例。
//Instant toInstant() 将此 Date对象转换为 Instant 。
DateFormat类应该用于格式化和解析日期字符串
SimpleDateFormat是一个用于以区域设置敏感的方式格式化和解析日期的具体类。 它允许格式化(日期→文本),解析(文本→日期)和规范化。
SimpleDateFormat simple2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss SSS"); //SimpleDateFormat() 默认的转换格式
simple.format(date)//日期->文本
simple2.parse("2022-2-21 05:22:41 446")//文本→日期
java8新增时间日期API :Date,SimpleDateFormat 线程不安全的
JDK8当中提供的`LocalTime` 、` LocalDate` 、 `LocalDateTime`等类型,线程安全,使用简单灵活
Year.now()//今年--------------->Year.of(2022)//指定年
Month.FEBRUARY//6月
LocalDate today = LocalDate.now();(LocalDate.of(2021,11,21))//今天不包含时分秒
LocalDate yourBirthDate = LocalDate.of(1999, Month.JUNE, 15);//您的生日
LocalTime time = LocalTime.now();(LocalTime time2 = LocalTime.of(11,11,11);)//时分秒
LocalDateTime now = LocalDateTime.now();(LocalDateTime ldt2 = LocalDateTime.of(2011,12,12,10,18,24);)//此时此刻
getYear()/getMonth()/getDayOfMonth()/getDayOfWeek()//获取年月日
getHour()/getMinute()/getSecond() //获取时分秒
today.isEqual(LocalDate.of(2021,11,21))/LocalDate.of(2020,1,1).isLeapYear()//判断//是否为闰年
LocalDate.of(2020,2,28).minusYears(1)/today.plusYears(1)//+-
now.withYear(2028)//设置
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");//日期与文本转换问题//日期转换器
LocalDateTime now1 = LocalDateTime.now();//格式化日期字符串
String nowStr = now1.format(formatter); //放入格式器
LocalDateTime date= LocalDateTime.parse(dateStr, formatter);//放入格式器//转成日期
date.getDayOfMonth()//获取日
LocalDate today1 = LocalDate.now();(LocalDate birthDate = LocalDate.of(1999, 3, 15);)//间隔
Period p = Period.between(birthDate, today1);/(System.out.println(p.getYears()+"年"+p.getMonths()+"月"+p.getDays()+"日");)//时期间隔 年月日
long between = ChronoUnit.YEARS.between(startDate, endDate)/
System.out.println("两年之间的差 : " + between); //0 不是1不满一年不计算在内//期量单位 间隔
public class Class001_Date {
public static void main(String[] args) {
//Date() 分配 Date对象并对其进行初始化,使其表示分配时间,测量 Date到毫秒。
Date date = new Date();
System.out.println(date);
//Date(long date) 分配 Date对象并初始化它以表示自标准基准时间(称为“纪元”)以来的指定毫秒数,即1970年1月1日00:00:00 GMT。
Date date2 = new Date(23749287403090L);
System.out.println(date2);
//long getTime() 返回自此 Date对象表示的1970年1月1日00:00:00 GMT以来的毫秒数。
System.out.println(date2.getTime());
//boolean after(Date when) 测试此日期是否在指定日期之后。
System.out.println(date2.after(date)); //true
//boolean before(Date when) 测试此日期是否在指定日期之前。
System.out.println(date2.before(date)); //false
//static Date from(Instant instant) 从 Instant对象获得 Date的实例。
//Instant toInstant() 将此 Date对象转换为 Instant 。
}
}
public class Class002_DateFormat {
public static void main(String[] args) throws ParseException {
Date date = new Date();
//SimpleDateFormat() 默认的转换格式
SimpleDateFormat simple = new SimpleDateFormat(); //2021/12/21 下午5:18
SimpleDateFormat simple2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss SSS"); //指定默认格式
//日期->文本
System.out.println(simple.format(date));;
System.out.println(simple2.format(date));;
//文本→日期
System.out.println(simple2.parse("2022-2-21 05:22:41 446"));
}
}
public class Class003_DateTime {
public static void main(String[] args){
//今年
System.out.println("今年"+Year.now());
System.out.println("指定年" + Year.of(2022));
//6月
System.out.println("月份:"+ Month.FEBRUARY);
//今天不包含时分秒
LocalDate today = LocalDate.now();
System.out.println("今天:"+today);
System.out.println(LocalDate.of(2021,11,21));;
//您的生日
LocalDate yourBirthDate = LocalDate.of(1999, Month.JUNE, 15);
System.out.println("生日:"+yourBirthDate);
//时分秒
LocalTime time = LocalTime.now();
System.out.println(time);
LocalTime time2 = LocalTime.of(11,11,11);
System.out.println(time2);
//此时此刻
LocalDateTime now = LocalDateTime.now();
System.out.println("现在:"+now);
LocalDateTime ldt1 = LocalDateTime.of(yourBirthDate,time);
LocalDateTime ldt2 = LocalDateTime.of(2011,12,12,10,18,24);
System.out.println(ldt2);
//获取年月日
System.out.println(today.getYear());
System.out.println(today.getMonth());
System.out.println(today.getDayOfMonth());
System.out.println(today.getDayOfWeek());
//获取时分秒
System.out.println(time.getHour());
System.out.println(time.getMinute());
System.out.println(time.getSecond());
System.out.println(now.getYear());
System.out.println(now.getMonth());
//判断
System.out.println(today.isEqual(LocalDate.of(2021,11,21)));
System.out.println(LocalDate.of(2020,1,1).isLeapYear()); //是否为闰年
//+-
System.out.println(LocalDate.of(2020,2,28).minusYears(1));
System.out.println(today.plusYears(1));
//设置
System.out.println(now.withYear(2028));
//日期与文本转换问题
//日期转换器
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
//格式化日期字符串
LocalDateTime now1 = LocalDateTime.now();
String nowStr = now1.format(formatter); //放入格式器
System.out.println(nowStr);
String dateStr= "2020-02-25 11:23:04";
//转成日期
LocalDateTime date= LocalDateTime.parse(dateStr, formatter);//放入格式器
//获取日
System.out.println(date.getDayOfMonth());
//间隔
LocalDate today1 = LocalDate.now();
LocalDate birthDate = LocalDate.of(1999, 3, 15);
//时期间隔 年月日
Period p = Period.between(birthDate, today1);
System.out.println(p.getYears()+"年"+p.getMonths()+"月"+p.getDays()+"日");
LocalDate startDate = LocalDate.of(1993, 8, 19);
LocalDate endDate = LocalDate.of(1994, 12,16);
//期量单位 间隔
long between = ChronoUnit.YEARS.between(startDate, endDate);
System.out.println("两年之间的差 : " + between); //0 不是1不满一年不计算在内
long between2 = ChronoUnit.MONTHS.between(startDate, endDate);
System.out.println("两年之间的差 : " + between2); //15
}
}