Date
Java μμ λ μ§/μκ°μ νμνλ λ°©λ²μΌλ‘ μ£Όλ‘ μ¬μ©λλ μ΄λ μλμ λ¬Έμ μ μ κ°μ§κ³ μλ€.
λ¬Έμ μ 
κΈ°μ‘΄ μλ°μμ Calendar, Date ν΄λμ€λ μ¬λ¬ λ¬Έμ μ μ κ°μ§κ³ μλ€
μ΄λ Naver D2 μμλ λ΄μ©μ λ€λ£¨κ³ μλ€.
μ΄λ₯Ό μμ½νμλ©΄ λ€μκ³Ό κ°λ€.
- λΆλ³ κ°μ²΄κ° μλλ€.
- setμΌλ‘ λ³κ²½ κ°λ₯ν¨
- μ΄λ μ μμ μΈ μ½λλ‘ μ¬μ©κ°λ₯ νκΈ° λλ¬Έμ μ§μ  Date ν΄λμ€μμ μ¬μ©νλκ²μ μννλ€.
 
- μμ νλμ λ¨μ©
- calendar.add(Calendar.SECOND, 2)
 
- νΌλμ€λ¬μ΄ μ μ§μ 
- 1μμ 0μΌλ‘ νν
 
- 1μμ 
- μΌκ΄μ± μλ μμΌ μμ
- μΌμμΌμ΄ 0νΉμ1λ‘ μ¬μ©νλ κ°μ²΄μ λ°λΌ λ€λ₯΄λ€.
 
- μΌμμΌμ΄ 
- Dateμ- Calendarκ°μ²΄μ μνλΆλ΄- λ
/μ/μΌ κ³μ°μ Dateν΄λμ€λ§μΌλ‘ λΆμ‘±
- Calendar κ°μ²΄λ₯Ό μμ±νκ³ Date κ°μ²΄λ₯Ό μμ±νλ νλ‘μΈμ€λ₯Ό κ±°μΉκΈ° λλ¬Έμ μμ±λΉμ©μ΄ λΉμΈλ€
 
- λ
/μ/μΌ κ³μ°μ 
- java.util.Dateμ νμ ν΄λμ€ λ¬Έμ - μ€νμμ€ λΌμ΄λΈλ¬λ¦¬ joda.timeμ¬μ©μ μΆμ²
 
- μ€νμμ€ λΌμ΄λΈλ¬λ¦¬ 
λ°©μ΄μ  볡μ¬λ³Έ
Effective Java 3rd μμλ μ μμ λ°©μ΄μ  볡μ¬λ³Έμ λ§λ€λΌ λΌκ³ λͺ μλμ΄ μμΌλ©° λ€μμ μ¬μ©μλ₯Ό 보μ¬μ€λ€.
public Period(Date start, Date end) {
  this.start = new Date(start.getTime());
  this.end = new Date(end.getTime());
  if (this.start.compareTo(this.end) > 0) {
    throw new IllegalArgumentException(this.start + " after " + this.end);
  }
}
μ΄λ λ§€κ°λ³μκ° Date μ²λΌ μ  3μμ μν΄ νμ₯λ μ μλ νμ
μ΄λΌλ©΄ λ°©μ΄μ  볡μ¬λ³Έμ λ§λ€λ clone() λ©μλλ₯Ό μ¬μ©ν΄μλ μλλ€.
LocalDate, LocalTime, LocalDateTime Java SE 1.8+
μ΄λ¬ν λ¬Έμ λ₯Ό μ¬μ©νκΈ° μν΄ Java SE 8 μμλ LocalDate, LocalTime, LocalDateTime μ΄λΌλ ν΄λμ€λ₯Ό λ§λ€μλ€.
μ¬μ©λ²
// νμ¬ λ μ§ μ λ³΄
LocalDate currentDate = LocalTime.now();
// λ
/μ/μΌ
LocalDate myDate = LocalDate.of(int year, int month, int dateOfMonth);
// νμ¬ μκ°μ λ¬Έμμ΄λ‘ λ³ν
LocalDateTime.now().format(DatetimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
// λ¬Έμμ΄μ LocalDateTime μΌλ‘ λ³ν
LocalDateTime.parse().format("2019-12-11 10:15:30", DatetimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
