[英]New Date & Time API in Java 8
在这个页面上我读了以下内容:
要使用日期进行计算,这也很容易。 与目前Java <1.8的情况相比,可能是最好的改进:
Period p = Period.of(2, HOURS);
LocalTime time = LocalTime.now();
LocalTime newTime = time.plus(p); // or time.plus(5, HOURS); or time.plusHours(5);
我没有清楚地看到版本<1.8之前的优势。
也许有人可以举个例子? Atm我问自己,新的日期和时间API的改进来自哪里。
使用Java <8,您需要编写如下内容:
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR, cal.get(Calendar.HOUR) + 2);
与Java 8相比:
LocalTime now = LocalTime.now();
LocalTime later = now.plus(2, HOURS);
改进主要是基于
Calendar.getInstance()
命名不是很好:如果不阅读Javadoc,很难分辨出你得到的实例。 LocalTime.now()
非常自我描述:你得到的时间就是现在 。 plus
),而使用Calendar API,您必须手动更改容易出错的对象字段(在此示例中为小时)。 cal.set(123, 2)
,这会抛出一个不那么有用的ArrayOutOfBoundsException
。 新API使用枚举来解决该问题。 总体而言,新API受到jodatime的启发,jodatime已经成为首选的Java Date API已有一段时间了。 您还可以阅读Java(<1.8)日期与JodaTime的详细比较 (其中大部分应该适用于Java 8 Date API)。
新日期/时间API的优点
缺点
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.