java8 date处理
Posted kakaisgood
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java8 date处理相关的知识,希望对你有一定的参考价值。
https://www.liaoxuefeng.com/wiki/1252599548343744/1303871087444002
从Java 8开始,java.time
包提供了新的日期和时间API,主要涉及的类型有:
- 本地日期和时间:
LocalDateTime
,LocalDate
,LocalTime
; - 带时区的日期和时间:
ZonedDateTime
; - 时刻:
Instant
; - 时区:
ZoneId
,ZoneOffset
; - 时间间隔:
Duration
。
以及一套新的用于取代SimpleDateFormat
的格式化类型DateTimeFormatter
。
和旧的API相比,新API严格区分了时刻、本地日期、本地时间和带时区的日期时间,并且,对日期和时间进行运算更加方便。
此外,新API修正了旧API不合理的常量设计:
- Month的范围用1~12表示1月到12月;
- Week的范围用1~7表示周一到周日。
最后,新API的类型几乎全部是不变类型(和String类似),可以放心使用不必担心被修改。
public class Main { public static void main(String[] args) { // 自定义格式化: DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); System.out.println(dtf.format(LocalDateTime.now())); // 用自定义格式解析: LocalDateTime dt2 = LocalDateTime.parse("2019/11/30 15:16:17", dtf); System.out.println(dt2); } }
注意ISO 8601规定的日期和时间分隔符是T
。标准格式如下:
- 日期:yyyy-MM-dd
- 时间:HH:mm:ss
- 带毫秒的时间:HH:mm:ss.SSS
- 日期和时间:yyyy-MM-dd‘T‘HH:mm:ss
- 带毫秒的日期和时间:yyyy-MM-dd‘T‘HH:mm:ss.SSS
以上是关于java8 date处理的主要内容,如果未能解决你的问题,请参考以下文章
别再用 Date 了,死磕 Java8 新特性,18 种日期处理方式!
别用 Date 了,使用 Java8 日期处理的新特性,真香!