Chr*_*311 10 java datetime java-8 java-time
在这个页面上我读了以下内容:
要使用日期进行计算,这也很容易.与目前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);
Run Code Online (Sandbox Code Playgroud)
我没有清楚地看到版本<1.8之前的优势.
也许有人可以举个例子?Atm我问自己,新的日期和时间API的改进来自哪里.
ass*_*ias 28
使用Java <8,您需要编写如下内容:
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR, cal.get(Calendar.HOUR) + 2);
Run Code Online (Sandbox Code Playgroud)
与Java 8相比:
LocalTime now = LocalTime.now();
LocalTime later = now.plus(2, HOURS);
Run Code Online (Sandbox Code Playgroud)
改进主要是基于
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).
归档时间: |
|
查看次数: |
12398 次 |
最近记录: |