之前写java的程序在时间上是用Date
类库,后来又演变成了Calendar
到现在java1.8开始使用LocalDate
。
以下就作为一个笔记展示一下其用法。
首先是日期
日期的构造
LocalDate nowDate = LocalDate.now();//返回当前的日期
LocalDate randomDate = LocalDate.of(2017, 01, 17);//自定义一个日期对象
获取日期的具体信息
大多数方法都可以很容易理解,我挑几个比较难理解的解释一下。
首先:
TemporalField
是一个接口,表示日期时间的字段,如月份或小时。
日期和时间使用将时间线划分成对人有意义的东西的字段来表示。此接口的实现表示这些
ChronoField
是一个枚举类实现了TemporalField
方法。枚举的类型有
ALIGNED_DAY_OF_WEEK_IN_MONTH 难以描述,不如看图。。。
ALIGNED_DAY_OF_WEEK_IN_YEAR
ALIGNED_WEEK_OF_MONTH
ALIGNED_WEEK_OF_YEAR
AMPM_OF_DAY 今天下午。
CLOCK_HOUR_OF_AMPM 上午的时钟小时。
CLOCK_HOUR_OF_DAY 时钟的一天。
DAY_OF_MONTH 月日。
DAY_OF_WEEK 星期二,例如星期二。
DAY_OF_YEAR 一年的一天。
EPOCH_DAY 基于1970-01-01(ISO)的Java时代的时代。
ERA 时代。
HOUR_OF_AMPM 上午的小时。
HOUR_OF_DAY 一天的时间
INSTANT_SECONDS 瞬间的时代。
MICRO_OF_DAY 微观的一天。
MICRO_OF_SECOND 微秒。
MILLI_OF_DAY 毫无疑问
MILLI_OF_SECOND 毫秒。
MINUTE_OF_DAY 一天的时间。
MINUTE_OF_HOUR 分钟的小时。
MONTH_OF_YEAR 一月份,如三月。
NANO_OF_DAY 纳纳天。
NANO_OF_SECOND 纳秒秒。
OFFSET_SECONDS 从UTC /格林威治的偏移。
PROLEPTIC_MONTH 以月份为基础,从0年起连续数月。
SECOND_OF_DAY 第二天。
SECOND_OF_MINUTE 第二分钟。
YEAR 这样的一年,如2012年。
YEAR_OF_ERA 时代的一年。
运行结果: