Java SE 常用类:date日期

Java SE 常用类:date日期

1、date日期

  • java.util.Date
  • public class Date extends Objectimplements Serializable, Cloneable, Comparable< Date >
  • Date类表示特定的时刻,精度为毫秒。

1.1、构造器

  • Date() 分配 Date对象并对其进行初始化,使其表示分配时间,测量 Date到毫秒。
Date date = new Date();
System.out.println(date.toString());
  • More ActionsDate(long date)分配 Date对象并初始化它以表示自标准基准时间(称为“纪元”)以来的指定毫秒数,即1970年1月1日00:00:00 GMT。
//有参构造,添加时间毫秒数,从1970年开始加
Date date1=new Date(1617761939308L);
System.out.println(date1);

1.2、常用方法

  • boolean after(Date when) 测试此日期是否在指定日期之后。
  • boolean before(Date when) 测试此日期是否在指定日期之前。
//比较对象是否是在指定时间后面
System.out.println(date.after(date1));
//比较对象是否是在指定时间前面
System.out.println(date.before(date1));
  • Object clone() 返回此对象的副本。
//clone() 返回对象副本
System.out.println(date.clone());
  • int compareTo(Date anotherDate) 比较两个日期的是否相同。
  • boolean equals(Object obj) 比较两个相等的日期。
//比较对象是否是在指定时间
System.out.println(date.compareTo(date1));
System.out.println(date.equals(date2));
System.out.println(date.compareTo(date2));
  • More ActionssetTime(long time) 将此 Dat对象设置为表示格林尼治标准时间1970年1月1日00:00:00之后的 time毫秒的时间点。
//将时间设置在1970年多少秒后面
date.setTime(1617761939308L);
System.out.println(date);
  • toString() 将此 Date对象转换为以下形式的 String
 System.out.println(date1.toString());

2、JDK8 Date类

  • JAVA8 新增系列时间日期API

  • 优点:

    • 线程安全
    • 操作简单,效率高
  • LocalTime:代表时间,可以通过时、分、秒来构造

  • LocalDate:代表日期,可以通过年、月、日构造,并且年/月/日的值都是符合日常使用习惯的

  • LocalDateTime:表示日期和时间,可以通过年、月、日、时、分、秒来构造,也可以通过一个

  • LocalDate和LocalTime来构造。

  • 格式化: DateTimeFormatter 类,它的使用也非常简单,调用静态方法 ofPattern 生成指定匹配格式

  • 的实例;

2.1 常用方法

常见方法
Yearnow():今年
MonthJANUARY:一月 FEBRUARY二月
LocalDate本地日期now():不包含时分秒的本时区的当前时间
of(年,月,日):构建本时区的时间
LocalDateTime 本地时间now():包含时分秒的本时区的当前时间
of(年,月,日,时,分,秒):构建本时区的时间
format() : 格式化为字符串
parse():转成日期
LocalTime:代表时间可以通过时、分、秒来构造LocalTime.of(18,45,20);
//今年 Year
System.out.println("今年"+Year.now()); 
System.out.println("指定年" + Year.of(2022)); 
//6月  Month
System.out.println("月份:"+Month.FEBRUARY);
//LocalDate 本地日期
//今天不包含时分秒 
LocalDate today = LocalDate.now(); 
System.out.println("今天:"+today); 
//您的生日 
LocalDate yourBirthDate = LocalDate.of(1999, Month.JUNE, 15); 
System.out.println("生日:"+yourBirthDate); 

//此时此刻 
LocalDateTime now = LocalDateTime.now(); 
System.out.println("现在:"+now);
//您的学习时间 
LocalDateTime dateTime = LocalDateTime.of(2020, 2, 25, 12, 30,40); 
System.out.println("时间:"+dateTime);

DateTimeFormatter 格式器

 //模板转换器
SimpleDateFormat format = new SimpleDateFormat();  //默认格式
//日期对象转为字符串
System.out.println(format.format(new Date()));;
//字符串转为日期对象
System.out.println(format.parse("1988/4/7 上午10:01"));

//指定格式转换模板
SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss SSS");  
 //日期对象转为字符串
 System.out.println(simple.format(new Date()));;
 //字符串转为日期对象
System.out.println(simple.parse("2021-04-07 10:07:59 184"));
//日期转换器 
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); 
//格式化日期字符串 
LocalDateTime now = LocalDateTime.now(); 
String nowStr = now.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());

2.2 间隔类

常见方法
**Period **时期between():间隔 年月日(基于日期)
**Duration ** 持续期间ofDays(天数):天
ofHours(小时数):时
ofMinutes(分钟数):分
ofSeconds(秒数):秒 基于时间
Instant 瞬间now():现在
plus():添加
minus():相减
ChronoUnit期量单位YEARS、MONTHS、DAYS、HOURS、MINUTES、SECONDS
getDuration() :获取Duration
between():间隔
LocalDate today = LocalDate.now(); 
LocalDate birthDate = LocalDate.of(1999, 3, 15); 
//时期间隔 年月日 
Period p = Period.between(birthDate, today); System.out.printf(p.getYears()+"年"+p.getMonths()+"d"+p.getDays()+"日"); 
LocalDate startDate = LocalDate.of(1993, 8, 19); 
LocalDate endDate = LocalDate.of(1994, Month.JANUARY,16); 
//期量单位 间隔 
long between =ChronoUnit.YEARS.between(startDate, endDate); 
System.out.println("两年之间的差 : " + between); //0 不是1不满一年不计算在内 
between =ChronoUnit.MONTHS.between(startDate, endDate); 
System.out.println("两月之间的差 : " + between); //4 不是5不满一月不计算在内 
//瞬间 
Instant inst1 = Instant.now(); Instant inst2 = inst1.minus(Duration.ofSeconds(10)); 
System.out.println("毫秒相隔 : " + Duration.between(inst1, inst2).toMillis()); 
System.out.println("秒相隔 : "+ Duration.between(inst1,inst2).getSeconds());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值