1、介绍
在Java8之前,日期时间API一直被开发者诟病,包括:java.util.Date是可变类型,SimpleDateFormat非线程安全等问题。故此,Java8引入了一套全新的日期时间处理API,新的API基于ISO标准日历系统。
2、名词
时间戳(时刻):时间戳是指格林尼治时间1970年01月01日00时00分00秒到现在的总秒数(毫秒数),可以理解成绝对时间,它与时区无关,不同时区对同一时间戳的解读不一样
时区:同一时刻(时间戳),世界上各地区的时间可能是不一样的,具体时间与时区相关,按经度一共分为24个时区,英国格林尼治是0时区,中国北京是东8区
二、Java8时间
2.1 Java8时间
Java1.0版本时,对时间的支持仅有java.util.Date类,它表示从1970-01-01 00:00:00开始精确到毫秒的时间点。到Java1.1时,表示日期的java.util.Calendar类被添加进来,但Calendar类也存在很多问题,比如:Date、Calendar类都是可变的,但像时间、日期这样的类应该是不变的;Date中月份是从0开始的;格式化只对Date生效,对Calendar不生效。2001年左右,Joda-Time项目开始致力于提供一个高质量的时间和日期的类库,因为其易用性很快得到了广泛使用。Java8借鉴了大量Joda-Time特性,推出了新的时间工具包
Java8时间相关类在java.time包路径下