前两天买的阿里巴巴java开发手册终于到了,虽然只有很薄的几十页,但还是有很多精华的内容,在看到时间操作那一块的时候,我发现java.time这个包是jdk8新有的,可以避免再使用之前Date以及Calendar那些又复杂又冗长的鬼代码了.于是抱着试试看的态度去源码里感受了下.
下面就是对新的类的一些理解,java.time中常用的主要有Clock,LocalDate,LocalTime以及LocalDateTime这几个类.
Clock 主要是用来创建一个time-zone系统时间的实例,在LocalDate中也用到:
LocalDate
是一个不可变的(final修饰符修饰,相当于String类似) 只是操作日期的类,严格按照iso-8601格式如:'2018-02-05'
时间范围从:'-999999999-01-01'~'+999999999-12-31'
获取当前date:
LocalDate date = LocalDate.now();//输出 2018-02-05
或者自定义时间:
LocalDate setDateBySelf = LocalDate.of(2018, 02, 28);//输出 2018-02-28或者localDate.parse("2018-02-28")
输出情况:
主要使用TemporalAdjusters类里面的api,有兴趣的同学可以仔细研究.
LocalTime
同LocalDate,操作时间的类,在新的包中,时间和日期是分开的,除非是LocalDateTime类
LocalTime now = LocalTime.now();//11:40:23:234
去除纳秒:
LocalTime now = LocalTime.now().withNano(0)); //
11:40:23
同上其他构造方法:
LocalTime zero = LocalTime.of(0, 0, 0); // 00:00:00
LocalTime mid = LocalTime.parse("12:00:00"); // 12:00:00
LocalTime mid = LocalTime.parse("12:00:00"); // 12:00:00
localDateTime:
LocalDateTime dateTime = LocalDateTime.now();//2018-02-05T11:43:19.200
数据库对应:
后面会介绍java8新的时间格式方法:
dateTimeFormatter