The method of calculating the time difference java8-

I. Description

In Java8, we can use the date to calculate the time difference between the following categories:

1.Period
2.Duration
3.ChronoUnit

Two .Period class

The main method is based Period getYears (), getMonths () and getDays () calculated
example:

package insping;

import java.time.LocalDate;
import java.time.Month;
import java.time.Period;

public class Test {

    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        System.out.println("Today : " + today);
        LocalDate birthDate = LocalDate.of(1993, Month.OCTOBER, 19);
        System.out.println("BirthDate : " + birthDate);

        Period p = Period.between(birthDate, today);
        System.out.printf("年龄 : %d 年 %d 月 %d 日", p.getYears(), p.getMonths(), p.getDays());
    }
}

result:

Today: 2017-06-16
BirthDate: 1993-10-19
Age: 23 years July 28

Three .Duration class

It provides the use of time-based value (such as seconds, nanoseconds) method for measuring an amount of time.
Example:

package insping;

import java.time.Duration;
import java.time.Instant;

public class Test {

    public static void main(String[] args) {
        Instant inst1 = Instant.now();
        System.out.println("Inst1 : " + inst1);
        Instant inst2 = inst1.plus(Duration.ofSeconds(10));
        System.out.println("Inst2 : " + inst2);

        System.out.println("Difference in milliseconds : " + Duration.between(inst1, inst2).toMillis());

        System.out.println("Difference in seconds : " + Duration.between(inst1, inst2).getSeconds());
    }
}

result:

Inst1 : 2017-06-16T07:46:45.085Z
Inst2 : 2017-06-16T07:46:55.085Z
Difference in milliseconds : 10000
Difference in seconds : 10

Four .ChronoUnit class

ChronoUnit class used to measure a period of time within a single unit of time, e.g. several seconds or days.
The following are examples of using BETWEEN () method to find the difference between the two dates.

package insping;

import java.time.LocalDate;
import java.time.Month;
import java.time.temporal.ChronoUnit;

public class Test {

    public static void main(String[] args) {
        LocalDate startDate = LocalDate.of(1993, Month.OCTOBER, 19);
        System.out.println("开始时间  : " + startDate);

        LocalDate endDate = LocalDate.of(2017, Month.JUNE, 16);
        System.out.println("结束时间 : " + endDate);

        long daysDiff = ChronoUnit.DAYS.between(startDate, endDate);
        System.out.println("两天之间的差在天数   : " + daysDiff);

    }
}

result:

Start time: 1993-10-19
End time: 2017-06-16
difference between two days in days: 8641
original is not easy, please indicate the source.

Guess you like

Origin www.cnblogs.com/snidget/p/11615321.html