본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

JAVA

LocalDate와 LocalTime: get() getLong()특정필드값 가져오기, with() plus() minus() 변경하기, truncatedTo() 0으로 만들기, isAfter() isBefore() isEqual() 비교하기

LocalDate와 LocalTime은 java.time 패키지의 가장 기본이 된다.

나머지 클래스들은 이들의 확장.

https://standout.tistory.com/1245

 

java.time패키지: 객체생성 now() of() parse()와 인터페이스, 간격을 나타내는 Period Duration

java.time Date와 Calendar가 가지고 있던 단점을 해소하기 위해 java.time패키지가 추가됨. https://standout.tistory.com/1224 Calendar와 Date, 이를 이용한 날짜/ 일수 출력하기 오래전부터 제공되던 Date클래스를 보

standout.tistory.com

 

 

 

LocalDate와 LocalTime의 객체에서 특정필드 값을 가져올때 get(), getXXX()를 사용한다.

LocalDate -  int getYear() 해당날짜의 연도반환

LocalDate date = LocalDate.now();
int year = date.getYear();
System.out.println("Year: " + year); //Year: 2024

 

LocalDate -  int getMonthValue() 해당날짜의 월 반환

LocalDate date = LocalDate.now();
int month = date.getMonthValue();
System.out.println("Month: " + month); //Month: 1

 

LocalDate -  Month getMonth() 해당날짜의 월을 'Month' 상수로 반환

LocalDate date = LocalDate.now();
Month month = date.getMonth();
System.out.println("Month: " + month); //Month: JANUARY

 

LocalDate -  int getDayOfMonth() 해당날짜의 월중 몇번째 날인지 반환

LocalDate date = LocalDate.now();
int dayOfMonth = date.getDayOfMonth();
System.out.println("Day of Month: " + dayOfMonth); //Day of Month: 11

 

LocalDate -  int getDayOfYear() 해당날짜가 연도중 몇번째 날인지 반환 (글 작성날: 240111)

LocalDate date = LocalDate.now();
int dayOfYear = date.getDayOfYear();
System.out.println("Day of Year: " + dayOfYear); //Day of Year: 11

 

LocalDate -  DayOfWeek getDayOfWeek() 해당날짜 요일을 DayOfWeek 상수로 반환

LocalDate date = LocalDate.now();
DayOfWeek dayOfWeek = date.getDayOfWeek();
System.out.println("Day of Week: " + dayOfWeek); //Day of Week: TUESDAY

 

LocalDate -  int lengthOfMonth() 해당날짜의 월이 총 몇일인지 반환

LocalDate date = LocalDate.now();
int lengthOfMonth = date.lengthOfMonth();
System.out.println("Length of Month: " + lengthOfMonth); //Length of Month: 31

 

LocalDate -  int lengthOfYear() 해당날짜의 연도가 총 몇일인지 반환

LocalDate date = LocalDate.now();
int lengthOfYear = date.lengthOfYear();
System.out.println("Length of Year: " + lengthOfYear); //Length of Year: 365

 

LocalDate -  boolean isLeapYear() 해당 날짜의 연도가 윤년인지 여부를 반환

LocalDate date = LocalDate.now();
boolean isLeapYear = date.isLeapYear();
System.out.println("Is Leap Year: " + isLeapYear); //Is Leap Year: true

 

 

isLeapYear는 앞서 Date관련 메서드로 확인해봤었다.

https://standout.tistory.com/1224#code_1703639491869

 

Calendar와 Date, 이를 이용한 날짜/ 일수 출력하기

오래전부터 제공되던 Date클래스를 보완하기 위해 Calendar 클래스가 등장. Calendar와 GregorianCalendar GregorianCalendar는 Calendar를 상속받아 구현한 전세계 공통 그레고리력에 맞게 구현한것. // Calendar를

standout.tistory.com

 

 

 

 

 

 

LocalTime - int getHour() 해당시간의 시간을 반환

LocalTime time = LocalTime.now();
int hour = time.getHour();
System.out.println("Hour: " + hour); //Hour: 13

 

LocalTime - int getMinute() 해당시간의 분을 반환

LocalTime time = LocalTime.now();
int minute = time.getMinute();
System.out.println("Minute: " + minute); //Minute: 45

 

LocalTime -  int getSecond() 해당시간의 초를 반환

LocalTime time = LocalTime.now();
int second = time.getSecond();
System.out.println("Second: " + second); //Second: 30

 

LocalTime -  int get Nano() 해당시간의 나노초를 반환

LocalTime time = LocalTime.now();
int nano = time.getNano();
System.out.println("Nano: " + nano); //Nano: 123456789

 

 

 

get() getLong()

원하는 필드를 직정 지정해 출력하다

get은 int형, getLong은 int외 타입을 출력한다.

 

ERA 연대, 1은 AD 서력, 0은 BC 기원전

LocalDate date = LocalDate.now();
System.out.println("ERA: " + date.get(ChronoField.ERA)); //ERA: 1

 

YEAR_OF_ERA, YEAR 연대의 해당연도, 해당연도

LocalDate date = LocalDate.now();
System.out.println("YEAR_OF_ERA: " + date.get(ChronoField.YEAR_OF_ERA)); //YEAR_OF_ERA: 2024
System.out.println("YEAR: " + date.get(ChronoField.YEAR)); //YEAR: 2024

 

MONTH_OF_YEAR 해당연도 월

LocalDate date = LocalDate.now();
System.out.println("MONTH_OF_YEAR: " + date.get(ChronoField.MONTH_OF_YEAR)); //MONTH_OF_YEAR: 1

 

DAY_OF_WEEK 주의 몇번째 날인지

LocalDate date = LocalDate.now();
System.out.println("DAY_OF_WEEK: " + date.get(ChronoField.DAY_OF_WEEK)); //DAY_OF_WEEK: 2

 

DAY_OF_MONTH 몇일인지

LocalDate date = LocalDate.now();
System.out.println("DAY_OF_MONTH: " + date.get(ChronoField.DAY_OF_MONTH)); //DAY_OF_MONTH: 11

 

AMPM_OF_DAY 오전인지 오후인지 오전 0 오후 1

LocalTime time = LocalTime.now();
System.out.println("AMPM_OF_DAY: " + time.get(ChronoField.AMPM_OF_DAY)); //AMPM_OF_DAY: 1

 

HOUT_OF_DAY 24형식으로 몇 '시'인지

LocalTime time = LocalTime.now();
System.out.println("HOUR_OF_DAY: " + time.get(ChronoField.HOUR_OF_DAY)); //HOUR_OF_DAY: 13

 

CLOCK_HOUR_OF_AMPM 12형식으로 몇 '시'인지

LocalTime time = LocalTime.now();
System.out.println("CLOCK_HOUR_OF_AMPM: " + time.get(ChronoField.CLOCK_HOUR_OF_AMPM)); //CLOCK_HOUR_OF_AMPM: 1

 

MINUTE_OF_HOUR 몇 '분'인지

LocalTime time = LocalTime.now();
System.out.println("MINUTE_OF_HOUR: " + time.get(ChronoField.MINUTE_OF_HOUR)); //MINUTE_OF_HOUR: 45

 

SECOND_OF_MINUTE 몇 '초'인지

LocalTime time = LocalTime.now();
System.out.println("SECOND_OF_MINUTE: " + time.get(ChronoField.SECOND_OF_MINUTE)); //SECOND_OF_MINUTE: 30

 

MILLI_OF_SECOND 몇 '밀리초'인지

LocalTime time = LocalTime.now();
System.out.println("MILLI_OF_SECOND: " + time.get(ChronoField.MILLI_OF_SECOND)); //MILLI_OF_SECOND: 789

 

DAY_OR_YEAR 해당 연도이 몇번째 날인지

LocalDate date = LocalDate.now();
System.out.println("DAY_OF_YEAR: " + date.get(ChronoField.DAY_OF_YEAR)); //DAY_OF_YEAR: 11

 

MINUTE_OF_DAY 해당날의 총 몇 '분'인지

LocalTime time = LocalTime.now();
System.out.println("MINUTE_OF_DAY: " + time.get(ChronoField.MINUTE_OF_DAY)); //MINUTE_OF_DAY: 825

 

SECOND_OF_DAY 해당날의 총 몇 '초'인지

LocalTime time = LocalTime.now();
System.out.println("SECOND_OF_DAY: " + time.get(ChronoField.SECOND_OF_DAY)); //SECOND_OF_DAY: 49530

 

MILLI_OF_DAY 해당날의 총 몇 '밀리초'인지

LocalTime time = LocalTime.now();
System.out.println("MILLI_OF_DAY: " + time.get(ChronoField.MILLI_OF_DAY)); //MILLI_OF_DAY: 49530847

 

ALIGNED_WEEK_OF_MONTH 월내의 몇 주차인지

LocalDate date = LocalDate.now();
System.out.println("ALIGNED_WEEK_OF_MONTH: " + date.get(ChronoField.ALIGNED_WEEK_OF_MONTH)); //ALIGNED_WEEK_OF_MONTH: 2

 

ALIGNED_WEEK_OF_YEAR 연도내의 몇 주차인지

LocalDate date = LocalDate.now();
System.out.println("ALIGNED_WEEK_OF_YEAR: " + date.get(ChronoField.ALIGNED_WEEK_OF_YEAR)); //ALIGNED_WEEK_OF_YEAR: 2

 

ALIGNED_WEEK_OF_WEEK_IN_MONTH 월내의 몇주차인지

LocalDate date = LocalDate.now();
System.out.println("ALIGNED_WEEK_OF_WEEK_IN_MONTH: " + date.get(ChronoField.ALIGNED_WEEK_OF_WEEK_IN_MONTH)); //ALIGNED_WEEK_OF_WEEK_IN_MONTH: 2

 

ALIGNED_WEEK_OF_WEEK_IN_YEAR 연도내의 몇주차인지

LocalDate date = LocalDate.now();
System.out.println("ALIGNED_WEEK_OF_WEEK_IN_YEAR: " + date.get(ChronoField.ALIGNED_WEEK_OF_WEEK_IN_YEAR)); //ALIGNED_WEEK_OF_WEEK_IN_YEAR: 2

 

INSTANT_SECONDS 에포크 이후의 초수

Instant instant = Instant.now();
System.out.println("INSTANT_SECONDS: " + instant.get(ChronoField.INSTANT_SECONDS)); //INSTANT_SECONDS: 1641947934

https://standout.tistory.com/1246

 

epoch 에포크란?

epoch 에포크란? 보통 1970년 1월 1일 00:00:00 UTC가 기준, 이 시점부터 경과한 시간을 초로 표현. 에포크사용시 간단한 정규화된 시간표현을 제공하고 시간을 일관되게 관리할 수 있음. 유닉스 시간, P

standout.tistory.com

 

OFFSET_SECONDS UTC협정세계시로부터의 오프셋 초

OffsetDateTime offsetDateTime = OffsetDateTime.now();
System.out.println("OFFSET_SECONDS: " + offsetDateTime.get(ChronoField.OFFSET_SECONDS)); //OFFSET_SECONDS: 32400

https://standout.tistory.com/74

 

NTP와 UTC의 차이

컴퓨터는 어떻게 시간을 표시할까? 에 대해 잠시 생각해보자. 우선 기기마다 시간이 다르면 인간들이 혼란스러울 테니 서로 같은 시간을 동기화하여 보여주고, 각 지역/나라마다 큰 차이가 나지

standout.tistory.com

 

PROLEPTIC_MONTH 프로렙틱 연월

LocalDate date = LocalDate.now();
System.out.println("PROLEPTIC_MONTH: " + date.get(ChronoField.PROLEPTIC_MONTH)); //PROLEPTIC_MONTH: 24241

https://standout.tistory.com/1247

 

Proleptic 프로렙틱이란?

Proleptic 프로렙틱이란? 달력시스템에서 특정 규칙을 따르는 시점 이전이나 이후의 날짜를 가리킬때 예를들어 프로렙틱 그레고리안 달력은 그레고리안 달력의 규칙을 그대로 따르나 해당달력이

standout.tistory.com

 

 

 

 

 

 

 

MICRO_OF_SECOND 해당초의 몇 마이크로초,백만분의 일초인지

Instant instant = Instant.now();
System.out.println("MICRO_OF_SECOND: " + instant.get(ChronoField.MICRO_OF_SECOND)); //MICRO_OF_SECOND: 123456

 

NANO_OF_SECOND 해당초의 몇 나노초, 10억분의 일초인지

Instant instant = Instant.now();
System.out.println("NANO_OF_SECOND: " + instant.get(ChronoField.NANO_OF_SECOND)); //NANO_OF_SECOND: 123456789

 

EPOCH_DAY 에포크 이후의 날짜 수

LocalDate date = LocalDate.now();
System.out.println("EPOCH_DAY: " + date.getLong(ChronoField.EPOCH_DAY)); //EPOCH_DAY: 18766

 

MICRO_OF_DAY 해당날의 몇 마이크로초, 백만분의 일초인지

LocalTime time = LocalTime.now();
System.out.println("MICRO_OF_DAY: " + time.getLong(ChronoField.MICRO_OF_DAY)); //MICRO_OF_DAY: 49530847123456

 

NANO_OF_DAY 해당날의 몇 나노초, 10억분의 일초인지

LocalTime time = LocalTime.now();
System.out.println("NANO_OF_DAY: " + time.getLong(ChronoField.NANO_OF_DAY)); //NANO_OF_DAY: 49530847123456789

 

 

 

 

 

 

 

with() plus() minus()로  날짜와 시간에서 필드 값 변경할 수 있다.

withYear

withMonth

withDayOfMonth

withDayOfYear

LocalDate date = LocalDate.now();
LocalDate newDate = date.withYear(2022).withMonth(3).withDayOfMonth(15).withDayOfYear(75);
System.out.println("Original Date: " + date); //Original Date: 2024-01-11
System.out.println("New Date: " + newDate); //New Date: 2022-03-15

 

withHour

withMinute

withSecond

withNano

LocalTime time = LocalTime.now();
LocalTime newTime = time.withHour(9).withMinute(0).withSecond(0).withNano(0);
System.out.println("Original Time: " + time); //Original Time: 14:45:30
System.out.println("New Time: " + newTime); //New Time: 09:00:00

 

 

 

 

*minus()도 동일하다.

LocalDate plus(TemporalAmount amountToAdd)

LocalDate currentDate = LocalDate.now();
Period periodToAdd = Period.ofMonths(1);
LocalDate newDate = currentDate.plus(periodToAdd);
System.out.println("현재 날짜: " + currentDate); //현재 날짜: 2024-01-15
System.out.println("한 달 뒤 날짜: " + newDate); //한 달 뒤 날짜: 2024-02-15

 

LocalDate plus(long amountToAdd, TemporalUnit unit)

LocalDate currentDate = LocalDate.now();
long daysToAdd = 7;
LocalDate newDate = currentDate.plus(daysToAdd, ChronoUnit.DAYS);
System.out.println("현재 날짜: " + currentDate); // 현재 날짜: 2024-01-15
System.out.println("7일 뒤 날짜: " + newDate); // 7일 뒤 날짜: 2024-01-22

 

LocalTime plus(TemporalAmount amountToAdd)

LocalTime currentTime = LocalTime.now();
Duration durationToAdd = Duration.ofHours(3);
LocalTime newTime = currentTime.plus(durationToAdd);
System.out.println("현재 시간: " + currentTime); // 현재 시간: 12:34:56.789
System.out.println("3시간 뒤 시간: " + newTime); // 3시간 뒤 시간: 15:34:56.789

 

LocalTime plus(long amountToAdd, TemporalUnit unit)

LocalTime currentTime = LocalTime.now();
long hoursToAdd = 2;
LocalTime newTime = currentTime.plus(hoursToAdd, ChronoUnit.HOURS);
System.out.println("현재 시간: " + currentTime); // 현재 시간: 12:34:56.789
System.out.println("2시간 뒤 시간: " + newTime); // 2시간 뒤 시간: 14:34:56.789

 

 

 

 

LocalDate plusYears (long yearsToAdd)

LocalDate currentDate = LocalDate.now();
long yearsToAdd = 2;
LocalDate newDate = currentDate.plusYears(yearsToAdd);
System.out.println("현재 날짜: " + currentDate); // 현재 날짜: 2024-01-15
System.out.println("2년 뒤 날짜: " + newDate); // 2년 뒤 날짜: 2026-01-15

 

LocalDate plusMonths(long monthsToAdd)

LocalDate currentDate = LocalDate.now();
long monthsToAdd = 6;
LocalDate newDate = currentDate.plusMonths(monthsToAdd);
System.out.println("현재 날짜: " + currentDate); // 현재 날짜: 2024-01-15
System.out.println("6개월 뒤 날짜: " + newDate); // 6개월 뒤 날짜: 2024-07-15

 

LocalDate plusDays(long daysToAdd)

LocalDate currentDate = LocalDate.now();
long daysToAdd = 10;
LocalDate newDate = currentDate.plusDays(daysToAdd);
System.out.println("현재 날짜: " + currentDate); // 현재 날짜: 2024-01-15
System.out.println("10일 뒤 날짜: " + newDate); // 10일 뒤 날짜: 2024-01-25

 

LocalDate plusWeeks(long weeksToAdd)

LocalDate currentDate = LocalDate.now();
long weeksToAdd = 3;
LocalDate newDate = currentDate.plusWeeks(weeksToAdd);
System.out.println("현재 날짜: " + currentDate); // 현재 날짜: 2024-01-15
System.out.println("3주 뒤 날짜: " + newDate); // 3주 뒤 날짜: 2024-02-05

 

 

 

 

LocalTime plusHours(long hoursToAdd)

LocalTime currentTime = LocalTime.now();
long hoursToAdd = 4;
LocalTime newTime = currentTime.plusHours(hoursToAdd);
System.out.println("현재 시간: " + currentTime); // 현재 시간: 12:34:56.789
System.out.println("4시간 뒤 시간: " + newTime); // 4시간 뒤 시간: 16:34:56.789

 

LocalTime plusMinutes(long minutesToAdd)

LocalTime currentTime = LocalTime.now();
long minutesToAdd = 30;
LocalTime newTime = currentTime.plusMinutes(minutesToAdd);
System.out.println("현재 시간: " + currentTime); // 현재 시간: 12:34:56.789
System.out.println("30분 뒤 시간: " + newTime); // 30분 뒤 시간: 13:04:56.789

 

LocalTime plusSeconds(long secondsToAdd)

LocalTime currentTime = LocalTime.now();
long secondsToAdd = 45;
LocalTime newTime = currentTime.plusSeconds(secondsToAdd);
System.out.println("현재 시간: " + currentTime); // 현재 시간: 12:34:56.789
System.out.println("45초 뒤 시간: " + newTime); // 45초 뒤 시간: 12:35:41.789

 

LocalTime plusNanos(long nanosToAdd)

LocalTime currentTime = LocalTime.now();
long nanosToAdd = 500_000_000;
LocalTime newTime = currentTime.plusNanos(nanosToAdd);
System.out.println("현재 시간: " + currentTime); // 현재 시간: 12:34:56.789
System.out.println("500 밀리초 뒤 시간: " + newTime); // 500 밀리초 뒤 시간: 12:34:57.289

 

 

 

 

truncatedTo()

지정된 것보다 작은 단위를 0으로 만들수도 있다.

LocalTime한정으로 이해하자, LocalDate에서는 사용될수없다. 년, 월 일은 0이 될 수 없기때문이다.

// 현재 시간을 가져옵니다.
LocalTime currentTime = LocalTime.now();
System.out.println("현재 시간: " + currentTime); // 예: 현재 시간: 12:34:56.789

// 시간을 시간 단위로 잘라서 출력합니다.
LocalTime truncatedTime = currentTime.truncatedTo(java.time.temporal.ChronoUnit.HOURS);
System.out.println("시간 단위로 잘라진 시간: " + truncatedTime); // 예: 시간 단위로 잘라진 시간: 12:00

 

 

 

temporalUnit(ChronoUnit)에 쓰이는 매개변수로는 아래와같다.

보면 이해할수있겠지만 truncatedTo()는 시간과 관련된 필드만 사용가능하다.

 

FOREVER 영원

LocalTime currentTime = LocalTime.of(15, 45, 30, 500_000_000);
LocalTime truncatedTime = currentTime.truncatedTo(ChronoUnit.FOREVER);
System.out.println("FOREVER 단위로 잘라진 시간: " + truncatedTime);
// 예: FOREVER 단위로 잘라진 시간: 00:00:00

 

ERAS 시대

LocalTime currentTime = LocalTime.of(15, 45, 30, 500_000_000);
LocalTime truncatedTime = currentTime.truncatedTo(ChronoUnit.ERAS);
System.out.println("ERAS 단위로 잘라진 시간: " + truncatedTime);
// 예: ERAS 단위로 잘라진 시간: 00:00:00

 

MILLENNIA 천년

LocalTime currentTime = LocalTime.of(15, 45, 30, 500_000_000);
LocalTime truncatedTime = currentTime.truncatedTo(ChronoUnit.MILLENNIA);
System.out.println("MILLENNIA 단위로 잘라진 시간: " + truncatedTime);
// 예: MILLENNIA 단위로 잘라진 시간: 00:00:00

 

CENTURIES 세기

LocalTime currentTime = LocalTime.of(15, 45, 30, 500_000_000);
LocalTime truncatedTime = currentTime.truncatedTo(ChronoUnit.CENTURIES);
System.out.println("CENTURIES 단위로 잘라진 시간: " + truncatedTime);
// 예: CENTURIES 단위로 잘라진 시간: 00:00:00

 

DECADES 10년

LocalTime currentTime = LocalTime.of(15, 45, 30, 500_000_000);
LocalTime truncatedTime = currentTime.truncatedTo(ChronoUnit.DECADES);
System.out.println("DECADES 단위로 잘라진 시간: " + truncatedTime);
// 예: DECADES 단위로 잘라진 시간: 15:45

 

YEARS 1년

LocalTime currentTime = LocalTime.of(15, 45, 30, 500_000_000);
LocalTime truncatedTime = currentTime.truncatedTo(ChronoUnit.YEARS);
System.out.println("YEARS 단위로 잘라진 시간: " + truncatedTime);
// 예: YEARS 단위로 잘라진 시간: 15:45

 

MONTHS 1달

LocalTime currentTime = LocalTime.of(15, 45, 30, 500_000_000);
LocalTime truncatedTime = currentTime.truncatedTo(ChronoUnit.MONTHS);
System.out.println("MONTHS 단위로 잘라진 시간: " + truncatedTime);
// 예: MONTHS 단위로 잘라진 시간: 15:45

 

WEEKS 1주

LocalTime currentTime = LocalTime.of(15, 45, 30, 500_000_000);
LocalTime truncatedTime = currentTime.truncatedTo(ChronoUnit.WEEKS);
System.out.println("WEEKS 단위로 잘라진 시간: " + truncatedTime);
// 예: WEEKS 단위로 잘라진 시간: 15:45

 

DAYS 1일

LocalTime currentTime = LocalTime.of(15, 45, 30, 500_000_000);
LocalTime truncatedTime = currentTime.truncatedTo(ChronoUnit.DAYS);
System.out.println("DAYS 단위로 잘라진 시간: " + truncatedTime);
// 예: DAYS 단위로 잘라진 시간: 15:45

 

HALF_DAYS 12시간

LocalTime currentTime = LocalTime.of(15, 45, 30, 500_000_000);
LocalTime truncatedTime = currentTime.truncatedTo(ChronoUnit.HALF_DAYS);
System.out.println("HALF_DAYS 단위로 잘라진 시간: " + truncatedTime);
// 예: HALF_DAYS 단위로 잘라진 시간: 15:00

 

HOURS 1시간

LocalTime currentTime = LocalTime.of(15, 45, 30, 500_000_000);
LocalTime truncatedTime = currentTime.truncatedTo(ChronoUnit.HOURS);
System.out.println("HOURS 단위로 잘라진 시간: " + truncatedTime);
// 예: HOURS 단위로 잘라진 시간: 15:00

 

MINUTES 1분

LocalTime currentTime = LocalTime.of(15, 45, 30, 500_000_000);
LocalTime truncatedTime = currentTime.truncatedTo(ChronoUnit.MINUTES);
System.out.println("MINUTES 단위로 잘라진 시간: " + truncatedTime);
// 예: MINUTES 단위로 잘라진 시간: 15:45

 

SECONDS 1초

LocalTime currentTime = LocalTime.of(15, 45, 30, 500_000_000);
LocalTime truncatedTime = currentTime.truncatedTo(ChronoUnit.SECONDS);
System.out.println("SECONDS 단위로 잘라진 시간: " + truncatedTime);
// 예: SECONDS 단위로 잘라진 시간: 15:45:30

 

MILLIS 1밀리초

LocalTime currentTime = LocalTime.of(15, 45, 30, 500_000_000);
LocalTime truncatedTime = currentTime.truncatedTo(ChronoUnit.MILLIS);
System.out.println("MILLIS 단위로 잘라진 시간: " + truncatedTime);
// 예: MILLIS 단위로 잘라진 시간: 15:45:30.500

 

MICROS 1마이크로초

LocalTime currentTime = LocalTime.of(15, 45, 30, 500_000_000);
LocalTime truncatedTime = currentTime.truncatedTo(ChronoUnit.MICROS);
System.out.println("MICROS 단위로 잘라진 시간: " + truncatedTime);
// 예: MICROS 단위로 잘라진 시간: 15:45:30.500000

 

NANOS 1나노초

LocalTime currentTime = LocalTime.of(15, 45, 30, 500_000_000);
LocalTime truncatedTime = currentTime.truncatedTo(ChronoUnit.NANOS);
System.out.println("NANOS 단위로 잘라진 시간: " + truncatedTime);
// 예: NANOS 단위로 잘라진 시간: 15:45:30.500000000

 

 

 

 

isAfter(), isBefore(), isEqual()

날짜와 시간을 비교할 수 있다.

 

isAfter() 주어진날짜/시간 이후인지의 여부

LocalDate date1 = LocalDate.of(2023, 1, 15);
LocalDate date2 = LocalDate.of(2024, 1, 15);

boolean isAfter = date1.isAfter(date2);
System.out.println("date1이 date2 이후인가? " + isAfter);
// 예: date1이 date2 이후인가? false

 

isBefore() 주어진날짜/시간 이전인지 여부

LocalTime time1 = LocalTime.of(12, 30);
LocalTime time2 = LocalTime.of(15, 45);

boolean isBefore = time1.isBefore(time2);
System.out.println("time1이 time2 이전인가? " + isBefore);
// 예: time1이 time2 이전인가? true

 

isEqual() 주어진날짜/시간과 같은지 여부

LocalDateTime dateTime1 = LocalDateTime.of(2023, 1, 15, 12, 30);
LocalDateTime dateTime2 = LocalDateTime.of(2023, 1, 15, 15, 45);

boolean isEqual = dateTime1.isEqual(dateTime2);
System.out.println("dateTime1과 dateTime2가 같은가? " + isEqual);
// 예: dateTime1과 dateTime2가 같은가? false