📚 학습 기록/Java 기초 & 중급

# 📅 데일리 학습 로그 [2025.02.12] ## 📚 학습 주제[김영한의 자바 중급 -1 섹션 7 날짜와 시간 – AI 이용 예제 풀이 ]

zenjoydev 2025. 2. 12. 22:56

 

# [Java 학습노트] 날짜와 시간 API 완벽 정리

 

## 📌 핵심 개념 체크리스트

- ✅ 문자열과 숫자 간의 변환 방법

- ✅ 정규표현식의 올바른 사용법

- ✅ Period와 ChronoUnit의 차이점 이해

- ✅ TemporalAdjusters 활용법 숙지

- ✅ StringBuilder의 효율적인 사용

 

## 📝 상세 학습 내용

 

### 1. 정규표현식 사용 시 주의사항

- '.' 문자는 모든 문자와 매칭되는 특수문자

- **중요**: split() 메서드에서는 반드시 '\\'를 사용해야 함

- `%2d` 포맷 활용 시 한 자리 숫자를 두 자리로 자동 변환 (공백 패딩)

 

### 2. BufferedReader 사용법

- **필수**: 사용 시 예외 처리(throws Exception) 구현 필요

 

### 3. Period vs ChronoUnit

- Period: "년, 월, 일" 단위로 기간 반환

- **ChronoUnit의 장점**:

- 기간을 원하는 단위로 계산 가능

- 시간 계산 팁: ChronoUnit.MINUTE 사용 시 60으로 나눈 나머지로 분 계산

 

### 4. TemporalAdjusters 활용

- 복잡한 날짜 계산에 특화

- **주의사항**: 시간/날짜 클래스 기반으로 사용

- 한 달 전체 계산 시 종료일에 하루를 더해야 마지막 날 포함됨

 

### 5. 날짜/시간 객체 특성

- **불변 객체** 특성: 변경 시 반드시 반환값을 받아서 사용

- 오전/오후 구분은 boolean 타입 변수 사용 권장 (안전성)

 

### 6. 문자열 처리

- StringBuilder 활용

- **장점**: 필요한 값만 추출 시 유연한 처리 가능

- **중요**: 길이 관리가 결과값 도출에 중요

- 문자열 ↔ 숫자 변환

- 문자열 → 숫자: Integer.parseInt()

- 숫자 → 문자열: String.valueOf()

 

### 7. Zone 타임 처리

- ZoneId.of()로 지정

- **필수**: 변경 시 with... 메서드 사용

 

## 💻 코드 예제

// TemporalAdjusters 활용
날짜객체.with(TemporalAdjusters...)
 
 

 

## 📚 다음 학습 계획

- 2025.02.13: 중첩 클래스, 내부 클래스 Part 1 학습 예정

 

## ✍️ 학습 소감

날짜와 시간 API에 대한 이해도가 기본기가 잡혔다. 어려운 개념도 꾸준히 해내니 내가 알고 있듯이 내가 해냈다.