在this页面上,我阅读了以下内容:
使用日期进行计算,也很容易。与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来自。
答案 0 :(得分:28)
使用Java< 8,你需要写一些类似的东西:
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR, cal.get(Calendar.HOUR) + 2);
VS。使用Java 8:
LocalTime now = LocalTime.now();
LocalTime later = now.plus(2, HOURS);
改进基本上是
Calendar.getInstance()
的命名不是很好:如果没有阅读Javadoc,很难告诉你正在获取哪个实例。 LocalTime.now()
非常自我描述:你有时间,现在是 。plus
),而使用Calendar API,则必须手动更改容易出错的对象字段(在本例中为小时)。 / LI>
cal.set(123, 2)
,这会导致一个不那么有帮助的ArrayOutOfBoundsException
。新的API使用枚举来解决这个问题。总体而言,新API受到jodatime的启发,jodatime已经成为首选的Java Date API已有一段时间了。您还可以阅读this detailed comparison of Java (<1.8) date vs. JodaTime(其中大部分应该适用于Java 8 Date API)。
答案 1 :(得分:1)
新日期/时间API的优势
<强>缺点强>