JAva 8日付クラスLocalDate,LocalTime,LocalDateTimeの基本操作
18694 ワード
Java 8の日付クラスやDateの欠点などについては、ここではあまり説明しないで、直接コードをつけて、コードの中で日常のプロジェクトの中で最も使用可能な基本的な操作です.
1.LocalDateクラス
2.LocalTimeクラス
3.LocalDateTimeクラス
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);
}
}