日期类

Date类

//  无参构造函数,封装当前的日期及时间
Date d=new Date();
System.out.println(d);
long l=d.getTime();//获得得距离1970年1月1日00:00:00的毫秒数
// 设置时间,传入的值为long型,代表距离1970年1月1日00:00:00的毫秒数
d.setTime(l+24*60*60*1000); 
System.out.println(d);
Fri May 07 21:55:06 CST 2021
Sat May 08 21:55:06 CST 2021

Calendar类

// 创建对象
Calendar c=Calendar.getInstance();
// 获取日期、时间
System.out.println("年: "+c.get(Calendar.YEAR));
System.out.println("月: "+c.get(Calendar.MONTH));
System.out.println("日: "+c.get(Calendar.DAY_OF_MONTH));
System.out.println("时: "+c.get(Calendar.HOUR_OF_DAY));
System.out.println("分: "+c.get(Calendar.MINUTE));
System.out.println("秒: "+c.get(Calendar.SECOND));
//  设置日期、时间
c.set(2021,6,6);
System.out.println("年: "+c.get(Calendar.YEAR));
System.out.println("月: "+c.get(Calendar.MONTH));
System.out.println("日: "+c.get(Calendar.DAY_OF_MONTH));
//  日期计算
c.add(Calendar.YEAR,3);  //3年之后
c.add(Calendar.MONTH,2);  //2月之后
Calendar c2=Calendar.getInstance();
c2.set(2022,4,6);
System.out.println(c.after(c2));  //在日期c2之后
System.out.println(c.before(c2));  //在日期c2之前
年: 2021
月: 4
日: 7
时: 22
分: 10
秒: 10
年: 2021
月: 6
日: 6
true
false

SimpleDateFormat类

只要为了实现Date类与String的相互转化,Date类本身可以转化成String,但结果就如Fri May 07 21:55:06 CST 2021,并不好看,我们想要的转化是可以转化成我们想要的格式。
创建对象:

SimpleDateFormat sdf=new SimpleDateFormat(pattern);

pattern:

G 年代标志符
y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / 下午 标记符
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区

// 字符串->>Date
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
String s="2021-05-07";
Date d=sdf.parse(s);
System.out.println(d);
// Date->>String
Date d2=new Date();
SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd日");    
String s2=sdf2.format(d);
System.out.println(s2); 
在Fri May 07 00:00:00 CST 2021
20210507

LocalDate类

// 获取当前日期
LocalDate ld=LocalDate.now();
System.out.println(ld);
// 获取年月日
System.out.println("年: "+ld.getYear());
System.out.println("月: "+ld.getMonth());
System.out.println("日: "+ld.getDayOfMonth());
System.out.println("一年第:"+ld.getDayOfYear()+"天");
//  日期比较
LocalDate ld2=LocalDate.parse("2022-03-23");
System.out.println(ld2.compareTo(ld)); 
System.out.println(ld2.equals(ld));
//  闰年
System.out.println("是否闰年:"+ld.isLeapYear());
//计算
ld=ld.plusMonths(3);
System.out.println(ld);
ld=ld.minusYears(1);
System.out.println(ld);		
2021-05-08
年: 2021: MAY
日: 8
一年第:1281
false
是否闰年:false
2021-08-08
2020-08-08

LocalDate与Date之间的转换:

//  Date->>LocalDate
Date d=new Date();
System.out.println("Date: "+d);
LocalDate dt=d.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
System.out.println("LocalDate: "+dt);
//  LocalDate->>Date
ZonedDateTime zdt=LocalDate.now().atStartOfDay(ZoneId.systemDefault());
Date d1=Date.from(zdt.toInstant());
System.out.println(d1);
Date: Sat May 08 00:13:48 CST 2021
LocalDate: 2021-05-08
Sat May 08 00:00:00 CST 2021

LocalTime类

//  获取当前时间
System.out.println("当前时间: "+LocalTime.now());
//  时间运算
LocalTime lt=LocalTime.now();
System.out.println("当前时间: "+lt);
lt=lt.plusHours(3);
System.out.println("3个小时之后的时间: "+lt);
当前时间: 11:07:14.976579300
当前时间: 11:07:14.977582400
3个小时之后的时间: 14:07:14.977582400

Period类

//  Period类:表示一段时间的年、月、日
LocalDate ld1=LocalDate.parse("2021-04-03");
LocalDate ld2=LocalDate.parse("2021-05-06");
Period p=Period.between(ld1, ld2);
System.out.println("相差多少月: "+p.getMonths()); // 相差多少月: 1
System.out.println("相差多少天: "+p.getDays());   // 相差多少天: 3
long l=ld2.toEpochDay()-ld1.toEpochDay();
System.out.println("两个日期之间相隔"+l+"天");
相差多少月: 1
相差多少天: 3
两个日期之间相隔33

DateTimeFormatter类

实现LocalDate与String之间的转换

// String->>LocalDate
DateTimeFormatter d1=DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate ld=LocalDate.parse("2021-05-06",d1);
System.out.println(ld);
// LocalDate->>String
DateTimeFormatter d2=DateTimeFormatter.ofPattern("yyyy年MM月dd日");
String s=d2.format(ld);
System.out.println(s);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值