jdk8为我们提供了非常好用的时间日期工具类。我们可以使用LocalDate 、LocalTime 、LocalDateTime来表示日期和时间,拥有极为方便的API满足业务需求,并且和数据库的字段可直接对应。这几个可以满足开发中的所有需求,极力推荐使用,请彻底放弃那些难用的Date 、Calendar、TimeStamp吧!
Java8中的时间核心功能如下:
类
描述
Instant
表示时间线上的某一时刻。通常是表达为“1970年初到这个时间点一共经过了多少纳秒”
Duration
表达一段时间,可以说Duration是两个Instant之间的时间差,也可以说Instant是1970年初到这个时间点的Duration
LocalDate
用于表示一个无时区的日期,比如生日、节日等等。
LocalDateTime
同上,无时区的日期与时间
LocalTime
同上,无时区的时间
ZonedDateTime
表示一个包含时区的日期与时间(如北京时间2017.04.02 8:00)
Period
无
DateTimeFormatter
负责将时间转为字符串,内置了许多常用的格式。替换了之前的simpleDateFormatter
Java 7中包含下表中列出的类与方法:(这里仅作为一个回顾,推荐使用上面介绍的java8中新的日期类)
类
描述
System.currentTimeMillis()
一个静态方法,返回当前日期时间(从1970年初到当前时间,经过了多少毫秒)
java.util.Date
用于表示日期和时间的类,大多数里头的方法已经不推荐使用了(deprecated).
java.sql.Date
用于表示日期的类,所有时间信息全被砍掉了,一般在数据库连接时使用
java.sql.Timestamp
同上,只是保留了时间信息。
java.util.Calendar
一个Calendar的基本类,可以对日期和时间进行操作,如加一天、一月、一年等等。
java.util.TimeZone
用于表达时区的类,当跨时区进行Calendar操作时很有用。
SimpleDateFormat
帮助把字符串解析为Date的类,同时也可将