JAVA8新日期

在Java8之前,日期时间API一直被开发者诟病,包括:java.util.Date是可变类型,SimpleDateFormat非线程安全等问题。故此,Java8引入了一套全新的日期时间处理API,新的API基于ISO标准日历系统。在Java8之前,日期时间API一直被开发者诟病,包括:java.util.Date是可变类型,SimpleDateFormat非线程安全等问题。

LocalDate、LocalTime、LocalDateTime

这三个类的实例是不可变的对象,分别表示日期,时间,日期和时间。它们提供了简单的日期或者时间,并不包含当前的时间是信息,也不包含与时区相关的信息。

通过这几个类我们在开发中可以很轻松的获取到年月日等信息。就不需要再使用SDF了

LocalDate:常用方法

LocalDate.now();  获取系统当前时间,返回值还是LocalDate

LocalDate.of() : 获取指定的时间

getDayOfWeek() :获取今天是这周星期几(枚举类型) 如周四 :THURSDAY

getDayOfYear() :获取今天是今年的第几天

getDayOfMonth():获取今天是这个月的几号

getYear()       :获取年

getMonth()     : 获取月份对象(枚举) 如 :四月APRIL

getMonthValue() : 获取月的值

plusDays(n)   : 加N天

plusWeeks(n)  : 加N星期

plusMonths(n)  : 加N月

plusYears(n)    : 加N年

minusDays(n)  : 减n天

minusWeeks(n) : 减n周

minusMonths(n) :减n月

minusYears(n) : 减n年

Period period = Period.between(ld1,ld2); 获取两个日期之间的间隔

period.getDays();  获取两个日期相差的天数

period.getMonths(); 获取两个日期相差的月

period.getYears();  获取两个日期相差的年

LocalTime、LocalDateTime的常用方法与LocalDate一样,只不过是精确到天还是精确到小时秒的问题。

Instant

Instant : 时间戳(以Unix元年 1970年1月1日 00:00:00到某个时间毫秒值)

注意:是以本初子午线来计算的,我国时间是以北京时间计算,北京对于本初子午线属于东八区,我们需要转换

Instant.now() : 获取当前时间,已0°经线计算

now.atOffset()  : 获取偏移量时间

toEpochMilli() : 转成毫秒时间

Duration duration = Duration.between(instant1, instant2); 获取两个时间的间隔

duration.getSeconds() : 两个时间间隔的秒数

duration.toMillis()    : 两个时间间隔的毫秒数

duration.toDays()     : 两个时间间隔的天数

duration.toHours()    : 两个时间间隔的小时数

时间校正器

TemporalAdjuster (接口): 时间校正器

在实际工作中,我们对于时间的操作业务有很多,比如:将日期调整到下一个周日等操作

我们可以通过TemporalAdjusters 工具类进行操作

代码示例:将时间调整为下周一

日期格式化

DateTimeFormatter : 日期格式化类

日期格式化有默认的一些类型,但更多时候我们会用自定义的一些格式,比如yyyy-mm-dd等等

比如 : DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");

dtf.format(); 将日期转成字符串

dtf.parse() : 将字符串转成日期

从前面我们学到的关于日期的很多操作确实非常好,各种计算,各种操作等等,但是有时候我们还是需要转换成Date来进行使用。

Date 转 LocalDateTime 

LocalDateTime 转Date

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是Smoky呢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值