日期类 LocalDate
能够简单的获取当天的日期,并且可以方便的对日期进行加减。
他是通过静态方法或者 from/of 等方法创建对象的。
这个类不存储时区,所以他没有时区的概念,如果需要时区的话需要使用 ZonedDateTime
这个类只能进行日期的相关操作,没有具体的时间。
下面介绍常用的几个方法
atTime
生成一个带有时间的日期,返回结果是 LocalDateTime
所以很明显这个就是带有时间的日期类。
1 | LocalDateTime time = LocalDate.now().atTime(12, 3, 22,232); |
compareTo()
比较两个时间返回的值是 int ,大于 0 则是比较者大,否则是被比较者大,为0相等。
format()
格式化时间,需要传递一个时间的 formatter 类型为 [DateTimeFormatter]
parse()
同上第一个参数是解析的字符串,第二个就是传入formatter
plus/minus
对日期进行加减,第一个参数传入的是 int 第二个就是单位,单位使用 ChronoUnit
枚举类型
1 | public class LocalDate1 { |
时间 LocalDateTime
这个和上面类似是一个时间类,不仅仅有日期还是时间。
atZone
产生带有时区日期
format
格式化时间
of
从一个时间创建对象 of(int year, int month, int dayOfMonth, int hour, int minute, int second)
parse
解析时间 **parse**([CharSequence]text, [DateTimeFormatter]
1 | public class LocalDateTime1 { |
LocalTime
这个类是上面的LocaDateTime中的 Time 部分,也就是只具有时间没有日期。
1 | public class LocalDate1 { |
Clock
这个类可以获取当前的时间戳
1 | public class Clock1 { |
上面的输出结果是:
1 | 1557567339397 |
Map初始化小技巧
再看Clock类中的 ZoneId 接口的时候发现了这个接口中使用了一个Map,然对Map做了初始化。一般初始化必须使用 put 放数据,这里采用了 ofEntries 来初始化多组数据。
1 | public static final Map<String, String> SHORT_IDS = Map.ofEntries( |