JDK1.8新增的时间日期API

9 篇文章 0 订阅

在JDK1.7中,处理日期相关的数据我们使用java.util.Data,算得上是一个万能的接口,他包含了日期、时间、还有毫秒数。当使用他存储日期或者只存储时间,那么只有定义的人才知道哪些数据是有用的。而且在java.util.Date中的月份从0开始,一月是0,十二月是11。

在JDK1.8及以后的API中,对于时间的使用我们更加便利。新增了LocalDate、LocalTime、LocalDateTime,分别表示ISO-8601日历系统(国际标准化组织制定的现代公民的日期和时间的表示法)的日期,时间、日期和时间。他们提供简单的日期或时间,并不包含当前的时间信息,也不包含与时区相关的信息。并且他们类的实例是不可变的对象,不但线程安全,而且不能修改。

这些新增的日期时间API都在java.time包下。

LocalDate类(LocalTime类似):

是不变的日期时间对象,代表一个日期,往往是年月日,他不包含时区的信息,且是不可变和线程安全的

1、获取对象的方法:(1)通过静态方法now:;(根据传递参数的不同可以分为三种:a.无参:在默认时区中从系统时钟获取当前日期;b.(Clock clock)从指定的时钟中获取当前日期c.(ZoneID zone)从指定时区中的系统时钟获取当前日期。)

                                          LocalDateTime ldt = LocalDateTime.now();

    、                              ( 2)通过静态方法of(),指定年月日时分秒,例如:LocalDateTimeIdlt=LocalDateTime.now();

2、一些常用方法:

(1)与获取相关的方法:get系类的方法

ldt.getYear();获取年

ldt.getMinute();获取分钟

ldt.getHour();获取小时

getDayOfMonth   获得月份天数(1-31)
getDayOfYear   
获得年份天数(1-366)
getDayOfWeek   
获得星期几(返回一个 DayOfWeek枚举值)
getMonth   
获得月份, 返回一个Month枚举值
getMonthValue   
获得月份(1-12)
getYear   
获得年份


(2)格式化日期字符串的方法 format()                                                                                                                                    例如:String yyyy=ldt.format(DateTimeFormatter.ofPattern("yyyy"));

(3)转换的方法:toLocalDate();to LocalTime();例如:LocalDate localDate = ldt.toLocalDate();

(4)判断的方法

isAfter()判断一个日期是否在指定日期之后  返回boolean 类型

isBefore()判断一个日期是否在指定日期之前   返回boolean 类型

isLeapYear()判断是否是闰年(这个是LocalDate类中的方法)  返回boolean类型

(5)解析的方法(静态)parse:paser() 将一个日期字符串解析成日期对象,字符串日期的写法的格式要正确,否则解析就会失败。例如:                   LocalDateTimeprase=LocalDateTime.parse("2017-12-03T10:15:30")

按照我们指定的格式去解析:用LocalDateTime想按照我们的自定义的格式去解析,需要注意日期字符串的年、月、日时分秒要写全,不然就会报错

例:LocalDateTime Idt4=LocalDateTime.now();

DateTimeFormatter=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

LocalDateTime.parse("2018-01-21 20:30:36",formatter);

(6)添加年月日时分秒的方法:

plus系列,都会返回一个新的LocalDateTime的对象。

(7)减去年月日时分秒的方法:minus系列的方法   返回一个新的LocalDateTime对象 

       LocalDateTime localDateTime2 = ldt.minusYears(8);

(8)指定年月日时分秒的方法:  with系列

LocalDateTime localDateTime3 =ldt.withYear(2001);








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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值