Java8-8-新时间日期API
LocalDate、LocalTime、LocalDateTime
LocalDate、LocalTime、LocalDateTime 类的实 例是不可变的对象,分别表示使用 ISO-8601日 历系统的日期、时间、日期和时间。 它们提供了简单的日期或时间,并不包含当前的时间信 息。也不包含与时区相关的信息。
方法 | 说明 |
---|---|
now() | 静态方法,根据当前时间创建对象 |
of() | 静态方法,根据指定日期/时间创建 对象 |
plusDays, plusWeeks, plusMonths, plusYears | 向当前 LocalDate 对象添加几天、 几周、几个月、几年 |
minusDays, minusWeeks, minusMonths, minusYears | 从当前 LocalDate 对象减去几天、 几周、几个月、几年 |
plus, minus | 添加或减少一个Duration或 Period |
withDayOfMonth, withDayOfYear, withMonth, withYear | 将月份天数、年份天数、月份、年 份修改为指 定 的 值 并 返 回 新 的 LocalDate 对象 |
getDayOfMonth | 获得月份天数(1-31) |
getDayOfYear | 获得年份天数(1-366) |
getDayOfWeek | 获得星期几(返回一个 DayOfWeek 枚举值) |
getMonth | 获得月份, 返回一个Month 枚举值 |
getMonthValue | 获得月份(1-12) |
getYear | 获得年份 |
until | 获得两个日期之间的 Period 对象, 或者指定ChronoUnits 的数字 |
isBefore, isAfter | 比较两个 LocalDate |
isLeapYear | 判断是否是闰年 |
Instant 时间戳
用于“时间戳”的运算。它是以Unix元年(传统 的设定为UTC时区1970年1月1日午夜时分)开始 所经历的描述进行运算
Duration 和 Period
- Duration:用于计算两个“时间”间隔
- Period:用于计算两个“日期”间隔
日期的操纵
- TemporalAdjuster : 时间校正器。有时我们可能需要获 取例如:将日期调整到“下个周日”等操作。
- TemporalAdjusters: 该类通过静态方法提供了大量的常 用 TemporalAdjuster 的实现。
获取下一个周日
1 | LocalDate nextSunday = LocalDate.now().with(TemporalAdjusters.next(DayOfWeek.SUNDAY)); |
解析与格式化
java.time.format.DateTimeFormatter类:该类提供了三种格式化方法:
- 预定义的标准格式
- 语言环境相关的格式
- 自定义的格式
时区的处理
Java8 中加入了对时区的支持,带时区的时间为分别为:
ZonedDate、ZonedTime、ZonedDateTime
其中每个时区都对应着 ID,地区ID都为 “{区域}/{城市}”的格式
Asia/Shanghai
属性 | 说明 |
---|---|
ZoneId | 该类中包含了所有的时区信息 |
getAvailableZoneIds | 可以获取所有时区时区信息 |
of(id) | 用指定的时区信息获取ZoneId 对象 |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment