JAva 8日付クラスLocalDate,LocalTime,LocalDateTimeの基本操作

18694 ワード

Java 8の日付クラスやDateの欠点などについては、ここではあまり説明しないで、直接コードをつけて、コードの中で日常のプロジェクトの中で最も使用可能な基本的な操作です.
 1.LocalDateクラス
package demo.java.jiangkd.java8.localdate;

import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.Month;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoField;
import java.time.temporal.ChronoUnit;

import org.junit.Test;

import lombok.extern.slf4j.Slf4j;

/**
 * LocalDate
* LocalDate * *
@author jiangkd * @date 2020/06/05 */ @Slf4j public class LocalDateDemo { /** * LocalDate */ @Test public void createLocalDateTest() { // LocalDate now = LocalDate.now(); log("now", now); // : yyyy-MM-dd, : 2020-06-05 // now = LocalDate.of(2020, Month.JUNE, 5); log("now", now); // 2020-06-05 } /** * 、 、 、 */ @Test public void getDateTest() { // LocalDate now = LocalDate.now(); // int year = now.getYear(); log("year", year); year = now.get(ChronoField.YEAR); log("year", year); // 2020 // , 1-12 Month month = now.getMonth(); log("month", month); log("month", month.getValue()); int monthValue = now.getMonthValue(); log("month", monthValue); int month2 = now.get(ChronoField.MONTH_OF_YEAR); log("month2", month2); // 6 // int dayOfMonth = now.getDayOfMonth(); log("dayOfMonth", dayOfMonth); int day = now.get(ChronoField.DAY_OF_MONTH); log("day", day); // 5 // , 1-7 DayOfWeek dayOfWeek = now.getDayOfWeek(); log("dayOfWeek", dayOfWeek); log("dayOfWeek", dayOfWeek.getValue()); int week = now.get(ChronoField.DAY_OF_WEEK); log("week", week); // 5 } /** * */ @Test public void plusOrMinusTest() { // LocalDate now = LocalDate.now(); log("now", now); // 2020-06-05 // + 1 now = now.plusYears(1); log("now", now); // 2021-06-05 // +2 now = now.plusMonths(2); log("now", now); // 2021-08-05 // 5, 13, 12 , 1 now = now.plusMonths(5); log("now", now); // 2022-01-05 // now , 6 30 , 30 now = LocalDate.now(); log("now", now); // 2020-06-05 // now = now.plusDays(30); log("now", now); // 2020-07-05 // now = LocalDate.now(); // log("now", now); // 2020-06-05 now = now.plus(30, ChronoUnit.DAYS).minus(2, ChronoUnit.MONTHS); log("now", now); // 2020-05-05 // now.minus plus , } /** * */ @Test public void localDateFormatterTest() { // LocalDate now = LocalDate.now(); log("now", now); // 2020-06-05 // String format = now.format(DateTimeFormatter.ofPattern("yyyy/MM/dd")); log("format", format); // 2020/06/05 } private void log(String info, Object obj) { log.info("{} -> {}", info, obj); } }

   2.LocalTimeクラス
package demo.java.jiangkd.java8.localdate;

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoField;

import org.junit.Test;

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class LocalTimeDemo {

    /**
     *   LocalDateTime
     */
    @Test
    public void createLocalTimeTest() {
        //
        LocalTime now = LocalTime.now();
        log("now", now); // 09:09:18.450
        //   LocalTime,        , , 
        now = LocalTime.of(9, 10, 30);
        log("now", now); // 09:10:30
    }

    /**
     *      
     */
    @Test
    public void getTimeTest() {
        //
        LocalTime now = LocalTime.now();
        //  
        int hour = now.getHour();
        log("hour", hour);
        hour = now.get(ChronoField.HOUR_OF_DAY);
        log("hour", hour);
        //  
        int minute = now.getMinute();
        log("minute", minute);
        minute = now.get(ChronoField.MINUTE_OF_HOUR);
        log("minute", minute);
        //  
        int second = now.getSecond();
        log("second", second);
        second = now.get(ChronoField.SECOND_OF_MINUTE);
        log("second", second);
    }

    @Test
    public void localTimeFormatterTest() {
        //
        LocalTime now = LocalTime.now();
        log("now", now);
        //
        String format = now.format(DateTimeFormatter.ofPattern("HH:mm:ss"));
        log("format", format); // 09-58-10
        format = now.format(DateTimeFormatter.ofPattern("HH:mm:ss,SSS"));
        log("format", format); // 09-58-10,912
    }

    private void log(String info, Object obj) {
        log.info("{} -> {}", info, obj);
    }
}

  3.LocalDateTimeクラス
package demo.java.jiangkd.java8.localdate;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

import org.junit.Test;

import lombok.extern.slf4j.Slf4j;

/**
 * LocalDateTime,        ,  LocalDate+LocalTime
 * 
 * @author jiangkd
 * @date 2020/06/05
 */
@Slf4j
public class LocalDateTimeDemo {

    /**
     *   LocalDateTime
     */
    @Test
    public void createLocalDateTimeTest() {
        //
        LocalDateTime now = LocalDateTime.now();
        log("now", now); // now -> 2020-06-05T09:28:39.095
        now = LocalDateTime.of(LocalDate.now(), LocalTime.now());
        log("now", now); // now -> 2020-06-05T09:28:39.112
    }

    /**
     *   LocalDate LocalTime
     */
    @Test
    public void getLocalDateOrTimeTest() {
        //
        LocalDateTime now = LocalDateTime.now();
        //   LocalDate
        LocalDate localDate = now.toLocalDate();
        log("localDate", localDate); // 2020-06-05
        //   LocalTime
        LocalTime localTime = now.toLocalTime();
        log("localTime", localTime); // 09:30:53.802
    }

    /**
     *    
     */
    @Test
    public void localDateTimeFormatterTest() {
        //
        LocalDateTime now = LocalDateTime.now();
        log("now", now); // 2020-06-05T10:01:05.556
        //
        String format = now.format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH-mm-ss"));
        log("format", format); // 2020/06/05 10-01-05
    }

    private void log(String info, Object obj) {
        log.info("{} -> {}", info, obj);
    }
}