JavaSE基础:JDK8日期操作

/ 1评 / 1

转载:https://juejin.im/post/5a795bad6fb9a0634f407ae5

Java处理日期、日历和时间的方式一直为社区所诟病,将 java.util.Date设定为可变类型,以及SimpleDateFormat的非线程安全使其应用非常受限。
新API基于ISO标准日历系统,java.time包下的所有类都是不可变类型而且线程安全。

编号 类的名称 描述
1 Instant 时间戳
2 Duration 持续时间,时间差
3 LocalDate 只包含日期,比如:2018-02-05
4 LocalTime 只包含时间,比如:23:12:10
5 LocalDateTime 包含日期和时间,比如:2018-02-05 23:14:21
6 Period 时间段
7 ZoneOffset 时区偏移量,比如:+8:00
8 ZonedDateTime 带时区的时间
9 Clock 时钟,比如获取目前美国纽约的时间
10 java.time.format.DateTimeFormatter 时间格式化

Java 8中获取今天的日期

Java 8中获取年、月、日信息

Java 8中处理特定日期

调用LocalDate.of()方法创建任意日期,该方法需要传入int类型的年、月、日做参数,返回对应的LocalDate实例。这个方法的好处是没再犯老API的设计错误,比如年度起始于1900,月份是从0开 始等等。

Java 8中判断两个日期是否相等

Java 8中获取当前时间

Java 8中获取当前时间

通过增加小时、分、秒来计算将来的时间很常见。Java 8除了不变类型和线程安全的好处之外,还提供了更好的plusHours()方法替换add(),并且是兼容的。注意,这些方法返回一个全新的LocalTime实例,由于其不可变性,返回后一定要用变量赋值。

Java 8如何计算一周后的日期

LocalDate日期不包含时间信息,它的plus()方法用来增加天、周、月,ChronoUnit类声明了这些时间单位。由于LocalDate也是不变类型,返回后一定要用变量赋值。

Java 8计算一年前或一年后的日期

利用minus()方法计算一年前的日期.

Java 8的Clock时钟类

Java 8增加了一个Clock时钟类用于获取当时的时间戳,或当前时区下的日期时间信息。以前用到System.currentTimeInMillis()和TimeZone.getDefault()的地方都可用Clock替换。

用Java判断日期是早于还是晚于另一个日期

在Java 8中,LocalDate类有两类方法isBefore()和isAfter()用于比较日期。调用isBefore()方法时,如果给定日期小于当前日期则返回true。

在Java 8中检查闰年 -->isLeapYear()

计算两个日期之间的天数和月数

有一个常见日期操作是计算两个日期之间的天数、周数或月数。在Java 8中可以用java.time.Period类来做计算。下面这个例子中,我们计算了当天和将来某一天之间的月数。

在Java 8中获取当前的时间戳

Instant类有一个静态工厂方法now()会返回当前的时间戳.

Java 8中如何使用预定义的格式化工具去解析或格式化日期

字符串互转日期类型


 

一条回应:“JavaSE基础:JDK8日期操作”

  1. 大雄说道:

    hutool不香吗?

发表评论

电子邮件地址不会被公开。 必填项已用*标注