Java的常用时间日期类

1. Date类

1.1 概述

计算机中时间原点:1970年1月1日00:00:00

时间换算单位:1秒 = 1000毫秒

Date代表了一个特定的时间,精确到毫秒

1.2 方法

构造方法:

演示代码:

//public Date()
Date d1 = new Date();
//pubic Date(long date)
long date = 1000*60*60
Date d2 = new Date(date);

常用方法:

演示代码:

//public long getTime()
Date d = new Date();
d.getTime();
//public void setTime(long time)
long time = System.currentTimeMillis();
d.setTime(time);

1.3 SimpleDateFormat类

概述:SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。

构造方法:

常用方法:

格式化(从Date到String)

public final String format(Date date)//将日期格式化为时间字符串。

解析(从String到Date)

public Date parse(String source)//从给定的字符串开始解析文本为日期

2. LocaDateTime类

2.1 分类

LocaDate 表示日期(年月日)

LocalTime 表示时间(时分秒)

LOvalDateTime 表示时间+日期(年月日时分秒)

2.2 LocalDateTime创建方法

方法:

演示代码:

//public static LocalDateTime now();
LocalDateTime now = LocalDateTime.now();
//public static LocalDateTime of(年,月,日,时,分,秒)
LocalDateTime localDateTime = LocalDateTime.of(2000,11,11,,11,11,11);

2.3 LocalDateTime获取方法

方法说明:

2.4 LocalDateTime转换方法

方法说明:

2.5 LocalDateTime格式化和解析

方法说明:

演示代码:

//public String format(指定格式)
LocalDateTime localDateTime = LocalDateTimme.of(2020,12,12)
//public static DateTimeFormatter ofPattern(String pattern)
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String s = localDateTime.format(pattern);
//public LocalDateTime parse(解析字符串,解析格式)
String s = "2020年12月12日";
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDateTime parse = LocalDateTime.parse(s,pattern);

2.6 LocalDateTime增加或减少时间方法

方法说明:

2.7 LocalDateTime减少或增加时间方法

方法说明:

2.8 LocalDateTime修改方法

说明方法:

3. Period和Duration

Period方法说明:

演示代码:

//public static Period between(开始时间,结束时间)  计算两个"时间"的间隔
LocalDate localDate1 = LocalDate.of(2020, 1, 1);
LocalDate localDate2 = LocalDate.of(2048, 12, 12);
Period period = Period.between(localDate1, localDate2);
System.out.println(period);//P28Y11M11D

//public int getYears()         获得这段时间的年数
System.out.println(period.getYears());//28
//public int getMonths()        获得此期间的月数
System.out.println(period.getMonths());//11
//public int getDays()          获得此期间的天数
System.out.println(period.getDays());//11

//public long toTotalMonths()   获取此期间的总月数
System.out.println(period.toTotalMonths());//347

Duration方法说明:

演示说明:

//public static Duration between(开始时间,结束时间)  计算两个“时间"的间隔

LocalDateTime localDateTime1 = LocalDateTime.of(2020, 1, 1, 13, 14, 15);
LocalDateTime localDateTime2 = LocalDateTime.of(2020, 1, 2, 11, 12, 13);
Duration duration = Duration.between(localDateTime1, localDateTime2);
System.out.println(duration);//PT21H57M58S
//public long toSeconds()	 获得此时间间隔的秒
System.out.println(duration.toSeconds());//79078
//public int toMillis()	     获得此时间间隔的毫秒
System.out.println(duration.toMillis());//79078000
//public int toNanos()       获得此时间间隔的纳秒
System.out.println(duration.toNanos());//79078000000000

4. 总结

LocalDate 和 Date 的区别:

java.util.Date是Java旧版的日期和时间类,而java.time.LocalDate是Java 8中引入的新日期API的一部分。

java.util.Date是可变的,并且不是线程安全的,而java.time.LocalDate是不可变的和线程安全的。

java.util.Date表示一个时间戳,同时包含日期和时间信息,而java.time.LocalDate仅表示日期信息,不包含时间。

java.util.Date中的方法大多已被废弃,而java.time.LocalDate提供了一组新的方法来操作日期,更符合现代编程习惯。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值