LocalDate와 LocalTime은 java.time 패키지의 가장 기본이 된다.
나머지 클래스들은 이들의 확장.
https://standout.tistory.com/1245
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
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
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
PROLEPTIC_MONTH 프로렙틱 연월
LocalDate date = LocalDate.now();
System.out.println("PROLEPTIC_MONTH: " + date.get(ChronoField.PROLEPTIC_MONTH)); //PROLEPTIC_MONTH: 24241
https://standout.tistory.com/1247
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
'JAVA' 카테고리의 다른 글
LocalDateTime, ZonedDateTime: now() of() 날짜/시간지정, ZonedId 특정지역, ZoneOffset 일관된 시간대를 구하다 (0) | 2024.01.12 |
---|---|
에포크타임의 표현 Instant, now() ofEpochSecond() 객체생성, toEpochMilli() 밀리초단위의 생성, Date와의 변환방법까지 (0) | 2024.01.12 |
java.time패키지: 객체생성 now() of() parse()와 인터페이스, 간격을 나타내는 Period Duration (0) | 2024.01.11 |
생일에 따른 연령계산하기 insert, update (0) | 2024.01.08 |
기술등급 계산하기 insert, update (0) | 2024.01.08 |