【_ 記 】java8中的Clock,LocalTime ,LocalDate, LocalDateTime時間類

java8中的Clock,LocalTime ,LocalDate, LocalDateTime時間類


Clock

Clock類提供了訪問當前日期和時間的方法,某一個特定的時間點也可以使用Instant類來表示

public class ClockTimeTest {
    private static final Consumer CONSUMER = System.out::println;

    public static void main(String[] args) {

        /*時區*/
        Clock clock = Clock.systemDefaultZone();
        CONSUMER.accept("當前時區:" + clock);


        /*獲取當前的微秒數*/
        long millis = clock.millis();
        CONSUMER.accept("當前的微毫秒:" + millis);


        Instant instant = clock.instant();
        Date from = Date.from(instant);
        CONSUMER.accept("當前時間:" + from);

    }
}

LocalTime

LocalTime 定義了一個沒有時區信息的時間

public static void main(String[] args) {
        /*當期的時分秒*/
        /*LocalTime localTime1 = LocalTime.now();
        LocalTime localTime2 = LocalTime.now();*/

        /*自定義時分秒*/
        LocalTime localTime1 = LocalTime.of(11, 22, 33);
        LocalTime localTime2 = LocalTime.of(12, 22, 33);
        CONSUMER.accept(localTime1);
        CONSUMER.accept(localTime2);
        /*判斷時間二是否在時間一直之後*/
        CONSUMER.accept(localTime1.isAfter(localTime2));

        /*兩個時間的小時差*/
        long between = ChronoUnit.HOURS.between(localTime1, localTime2);
        /*兩個時間的分鐘差*/
        long between1 = ChronoUnit.MINUTES.between(localTime1, localTime2);

        CONSUMER.accept(between);
        CONSUMER.accept(between1);




    }
}

LocalDate

LocalDate 表示了一個確切的日期,下面的例子展示瞭如何給Date對象加減天/月/年。另外要注意的是這些對象是不可變的,操作返回的總是一個新實例。

public class LocalDateTest {
    private static final Consumer CONSUMER = System.out::println;

    public static void main(String[] args) {
        /*當前日期*/
        LocalDate today = LocalDate.now();
        CONSUMER.accept(today);

        /*獲得1天后的日期*/
        LocalDate tomorrow = today.plus(1, ChronoUnit.DAYS);
        CONSUMER.accept(tomorrow);

        /*獲得1天前的日期*/
        LocalDate yesterday = today.minusDays(1);
        CONSUMER.accept(yesterday);

        /*查看2020年1月15號 是星期幾*/
        LocalDate independenceDay = LocalDate.of(2020, Month.JANUARY, 15);
        DayOfWeek dayOfWeek = independenceDay.getDayOfWeek();
        CONSUMER.accept(dayOfWeek);

    }
}

LocalDateTime

LocalDateTime 同時表示了時間和日期,相當於前兩節內容合併到一個對象上了。
LocalDateTime和LocalTime還有LocalDate一樣,都是不可變的。LocalDateTime提供了一些能訪問具體字段的方法。

public class LocalDateTimeTest {
    private static final Consumer CONSUMER = System.out::println;

    public static void main(String[] args) {

        LocalDateTime now = LocalDateTime.now();
        CONSUMER.accept(now);

        /*設置一個時間段*/
        LocalDateTime sylvester = LocalDateTime.of(2020, Month.JANUARY, 14, 14, 26, 59);
        CONSUMER.accept(sylvester);

        /*星期的第幾天*/
        DayOfWeek dayOfWeek = sylvester.getDayOfWeek();
        CONSUMER.accept(dayOfWeek);
        /*月份的第幾天*/
        int dayOfMonth = sylvester.getDayOfMonth();
        CONSUMER.accept(dayOfMonth);

        /*一年的第幾天*/
        int dayOfYear = sylvester.getDayOfYear();
        CONSUMER.accept(dayOfMonth);

    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章