Java- 技术专题 - 时间工具类的使用方案
1.java.util.Date -> java.time.LocalDateTime
2. java.util.Date -> java.time.LocalDate
3. java.util.Date-> java.time.LocalTime
4. java.time.LocalDateTime --> java.util.Date
5. java.time.LocalDate --> java.util.Date
6. java.time.LocalTime --> java.util.Date
一、简介
Java8之前,日期时间API一直被开发者诟病,包括:java.util.Date是可变类型SimpleDateFormat非线程安全等问题。
故此,Java8引入了一套全新的日期时间处理API,新的API基于ISO标准日历系统。
二、日期初识
示例1: 获取当天日期
Java 8中的 LocalDate 用于表示当天日期。和java.util.Date不同,它只有日期,不包含时间。
示例2: 构造指定日期
调用工厂方法LocalDate.of()创建任意日期, 该方法需要传入年、月、日做参数,返回对应的LocalDate实例。这个方法的好处是没再犯老API的设计错误,比如年度起始于1900,月份是从0开始等等
示例3: 获取年月日信息
示例4: 比较两个日期是否相等
三、时间初识
示例: 获取当前时间
Java 8中的 LocalTime 用于表示当天时间。和java.util.Date不同,它只有时间,不包含日期。
四、比较与计算
示例1: 日期时间计算
Java8提供了新的plusXxx()方法用于计算日期时间增量值,替代了原来的add()方法。新的API将返回一个全新的日期时间示例,需要使用新的对象进行接收。
示例2: 日期时间比较
Java8提供了isAfter()、isBefore()用于判断当前日期时间和指定日期时间的比较
五、时区
示例: 创建带有时区的日期时间
Java 8不仅分离了日期和时间,也把时区分离出来了。现在有一系列单独的类如ZoneId来处理特定时区,ZoneDateTime类来表示某时区下的时间。
六、格式化
示例1: 使用预定义格式解析与格式化日期
示例2: 日期和字符串的相互转换
七、相关类说明
评论