2022. 5. 7. 23:25γJAVA/μλ°μ μ μ
1οΈβ£ Calendar μ Date
Date λ λ μ§μ μκ°μ λ€λ£° λͺ©μ μΌλ‘ jdk1.0 λΆν° μ 곡λμ΄μ¨ ν΄λμ€μ΄λ€. jdk1.0 μ΄ μ 곡νλ ν΄λμ€μ μμ κΈ°λ₯μ μ§κΈκ³Ό λΉκ΅ν μ μμ μ λλ‘ λΉμ½νλ€. Date ν΄λμ€ μμ κΈ°λ₯μ΄ λΆμ‘±νκΈ° λλ¬Έμ μλλ¬ Calendar λΌλ μλ‘μ΄ ν΄λμ€λ₯Ό λ€μ λ²μ μΈ jdk1.1λΆν° μ 곡νκΈ° μμνλ€. Calendar λ Date 보λ€λ ν¨μ¬ λμμ§λ§ λͺ κ°μ§ λ¨μ λ€μ΄ λ°κ²¬λμλ€.
λ¦μ κ°μ΄ μμ§λ§ Jdk1.8λΆν° java.time ν¨ν€μ§λ‘ κΈ°μ‘΄μ λ¨μ λ€μ κ°μ ν μλ‘μ΄ ν΄λμ€λ€μ΄ μΆκ°λμλ€.
- Calendar μ GregorianCalendar
Calendar λ μΆμν΄λμ€μ΄λ―λ‘ μ§μ κ°μ²΄λ₯Ό μμ±ν μ μκ³ , λ©μλλ₯Ό ν΅ν΄μ μμ ν ꡬνλ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μ»μ΄μΌ νλ€.
Calendar cal = Calendar.getInstance();
-> getInstance() λ Calendar ν΄λμ€λ₯Ό ꡬνν ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό λ°ννλ€.
Calendar λ₯Ό μμλ°μ μμ ν ꡬνν ν΄λμ€λ‘λ GregorianCalendar μ BuddhistCalendar κ° μλλ° getInstance()λ μμ€ν μ κ΅κ°μ μ§μμ€μ μ νμΈν΄μ νκ΅μΈ κ²½μ°μλ BuddhistCalendar λ₯Ό λ°ννκ³ , κ·Έ μΈμλ GregorianCalendar μΈμ€ν΄μ€λ₯Ό λ°ννλ€.
GregorianCalendarλ Calendarλ₯Ό μμλ°μ μ€λλ μ μΈκ³ 곡ν΅μΌλ‘ μ¬μ©νκ³ μλ κ·Έλ κ³ λ¦¬λ ₯μ λ§κ² ꡬνν κ²μΌλ‘ νκ΅μ μ μΈν λλ¨Έμ§ κ΅κ°μμλ GregorianCalendarλ₯Ό μ¬μ©νλ©΄ λλ€.
μΈμ€ν΄μ€λ₯Ό μ§μ μμ±ν΄μ μ¬μ©νμ§ μκ³ μ΄μ²λΌ λ©μλλ₯Ό ν΅ν΄ μΈμ€ν΄μ€λ₯Ό λ°ννκ² νλ μ΄μ λ
μ΅μνμ λ³κ²½μΌλ‘ νλ‘κ·Έλ¨μ΄ λμν μ μλλ‘ νκΈ° μν΄μμ΄λ€.
- Date μ Calendarκ°μ λ³ν
Calendarκ° μλ‘ μΆκ°λλ©΄μ Dateλ λλΆλΆμ λ©μλκ° deprecated λμμΌλ―λ‘ μ μ¬μ©λμ§λ μλλ€.
κ·ΈλΌμλ λΆκ΅¬νκ³ μ¬μ ν Dateλ₯Ό νμλ‘ νλ λ©μλλ€μ΄ μκΈ° λλ¬Έμ Calendar λ₯Ό Dateλ‘ λλ κ·Έ λ°λλ‘ λ³νν μΌμ΄ μκΈ΄λ€.
1. Calendar λ₯Ό Dateλ‘ λ³ν
Calendar cal = Calendar.getInstance();
Date d = new Date(cal.getTimeInMillis());
2. Date λ₯Ό Calendarλ‘ λ³ν
Date d = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(d);
-> getInstance()λ₯Ό ν΅ν΄μ μ»μ μΈμ€ν΄μ€λ κΈ°λ³Έμ μΌλ‘ νμ¬ μμ€ν μ λ μ§μ μκ°μ λν μ 보λ₯Ό λ΄κ³ μλ€
μνλ λ μ§μ μκ°μΌλ‘ μ€μ νλ €λ©΄ set λ©μλλ₯Ό μ¬μ©νλ©΄ λλ€.
μ¬κΈ°μλ get λ₯Ό μ΄μ©ν΄μ μνλ νλμ κ°μ μ»μ΄μ€λ λ°©λ²μ 보μ¬μ€λ€.
νκ°μ§ μ£Όμν μ μ get(Calendar.MONTHS)λ‘ μ»μ΄μ€λ κ°μ λ²μκ° 1 ~ 12 κ° μλ 0 ~ 11 μ΄λΌλ μ μ΄λ€.
κ·Έλμ κ°μ΄ 0μ΄λ©΄ 1μμ μλ―Ένκ³ 11λ©΄ 12μμ μλ―Ένλ€.
-> λ λ μ§κ°μ μ°¨μ΄λ₯Ό ꡬνλ μμ λ‘, λ μ§μ μκ°μ μνλ κ°μΌλ‘ λ³κ²½νλ €λ©΄ set λ©μλλ₯Ό μ¬μ©νλ©΄ λλ€.
λ λ μ§κ°μ μ°¨μ΄λ₯Ό ꡬνκΈ° μν΄μλ λ λ μ§λ₯Ό μ΅μ λ¨μμΈ μ΄ λ¨μλ‘ λ³κ²½ν λ€μ κ·Έ μ°¨μ΄λ₯Ό ꡬνλ©΄ λλ€.
-> λ κ°μ μκ° λ°μ΄ν°λ‘λΆν° μ΄ λ¨μλ‘ μ°¨μ΄λ₯Ό ꡬν λ€μ μλΆμ΄λ‘ λ°κΏ μΆλ ₯νλ μμ μ΄λ€ .
κ°μ₯ ν° λ¨μμΈ μκ° λ¨μ 3600μ΄λ‘ λλκ³ λ¨μ λλ¨Έμ§λ₯Ό λ€μ λΆ λ¨μ 60μ΄λ‘ λλλ©΄ κ·Έ λλ¨Έμ§λ μ΄ λ¨μμ κ°μ΄ λλ€.
-> add λ₯Ό μ¬μ©νλ©΄ μ§μ ν νλμ κ°μ μνλ λ§νΌ μ¦κ° λλ κ°μμν¬ μ μκΈ° λλ¬Έμ add λ©μλλ₯Ό μ΄μ©νλ©΄ νΉμ λ μ§ λλ μκ°μ κΈ°μ μΌλ‘ ν΄μ μΌμ κΈ°κ° μ νμ λ μ§μ μκ°μ μμλΌ μ μλ€. (λ€λ₯Έ νλμ μν₯ O)
roll λ₯Ό μ¬μ©νλ©΄ μ§μ ν νλμ κ°μ μ¦κ° λλ κ°μμν¬ μ μλλ° add λ©μλμμ μ°¨μ΄μ μ λ€λ₯Έ νλμ μν₯μ λ―ΈμΉμ§ μλλ€λ κ²μ΄λ€.
2οΈβ£ νμν ν΄λμ€
- DecimalFormat
νμν ν΄λμ€ μ€μμ μ«μλ₯Ό νμννλλ° μ¬μ©λλ κ²μ΄ DecimalFormatμ΄λ€.
DecimalFormatλ₯Ό μ΄μ©νλ©΄ μ«μ λ°μ΄ν°λ₯Ό μ μ, λΆλ μμμ , κΈμ‘ λ±μ λ€μν νμμΌλ‘ ννν μ μμΌλ©°, λ°λλ‘ μΌμ ν νμμ ν μ€νΈ λ°μ΄ν°λ₯Ό μ«μλ‘ μ½κ² λ³ννλ κ²λ κ°λ₯νλ€.
DecimalFormatμ μ¬μ©νλ λ°©λ²μ κ°λ¨νλ€.
λ¨Όμ μνλ μΆλ ₯νμμ ν¨ν΄μ μμ±νμ¬ DecimalFormatμΈμ€ν΄μ€λ₯Ό μμ±ν λ€μ,
μΆλ ₯νκ³ μ νλ λ¬Έμμ΄λ‘ format λ©μλλ₯Ό νΈμΆνλ©΄ μνλ ν¨ν΄ μ λ§κ² λ³νλ λ¬Έμμ΄μ μ»κ² λλ€.
-> parse λ©μλλ₯Ό μ¬μ©νλ©΄ κΈ°νΈμ λ¬Έμκ° ν¬ν¨λ λ¬Έμμ΄μ μ«μλ‘ μ½κ² λ³νν μ μλ€.
Number ν΄λμ€λ Integer, Double κ³Ό κ°μ μ«μλ₯Ό μ μ₯νλ λνΌν΄λμ€μ μ‘°μμ΄λ©°, doubleValue() λ Number μ μ μ₯λ κ°μ double νμ κ°μΌλ‘ λ³ννμ¬ λ°ννλ€.
- simpleDateFormat
: λ μ§μ μκ°μ λ€μν νμμΌλ‘ μΆλ ₯ν μ μκ² ν΄μ€λ€.
3οΈβ£ java.time ν¨ν€μ§
Dateμ Calendar κ° κ°μ§κ³ μλ λ¨μ λ€μ ν΄μνκΈ° μν΄ λλμ΄ jdk1.8λΆν° java.time ν¨ν€μ§κ° μΆκ°λμλ€.
-> μμ ν¨ν€μ§λ€μ μν ν΄λμ€λ€μ κ°μ₯ ν° νΉμ§μ String ν΄λμ€μ²λΌ λΆλ³μ΄λΌλ κ²μ΄λ€.
κ·Έλμ λ μ§λ μκ°μ λ³κ²½νλ λ©μλλ€μ κΈ°μ‘΄μ κ°μ²΄λ₯Ό λ³κ²½νλ λμ μ νμ λ³κ²½λ μλ‘μ΄ κ°μ²΄λ₯Ό λ°ννλ€.
κΈ°μ‘΄ Calendar ν΄λμ€λ λ³κ²½κ°λ₯νλ―λ‘ λ©ν° μ°λ λ νκ²½μμ μμ νμ§ λͺ»νλ€.
: λ©ν° μ°λ λ νκ²½μμλ λμμ μ¬λ¬ μ°λ λκ° κ°μ κ°μ²΄μ μ κ·Όν μ μκΈ° λλ¬Έμ λ³κ²½ κ°λ₯ν κ°μ²΄λ λ°μ΄ν°κ° μλͺ»λ κ°λ₯μ±μ΄ μμΌλ©°, μ΄λ₯Ό μ°λ λμ μμ νμ§ μλ€κ³ νλ€.
- java.time ν¨ν€μ§μ ν΅μ¬ ν΄λμ€
λ μ§μ μκ°μ νλλ‘ νννλ Calendar ν΄λμ€μ λ¬λ¦¬ java.time ν¨ν€μ§μμλ λ μ§μ μκ°μ λ³λμ ν΄λμ€λ‘ λΆλ¦¬ν΄ λμλ€.
μκ°μ ννν λλ LocalTime ν΄λμ€λ₯Ό μ¬μ©νκ³ , λ μ§λ₯Ό ννν λλ LocalDate ν΄λμ€λ₯Ό μ¬μ©νλ€.
κ·Έλ¦¬κ³ λ μ§μ μκ°μ΄ λͺ¨λ νμν λλ LocalDateTime ν΄λμ€λ₯Ό μ¬μ©νλ©΄ λλ€.
μ¬κΈ°μ μκ°λ(time-zone)κΉμ§ λ€λ€μΌ νλ€λ©΄ ZoneDateTime ν΄λμ€λ₯Ό μ¬μ©νλ©΄ λλ€.
λ μ§μ μκ°μ κ°κ²©μ νννκΈ° μν ν΄λμ€λ μλλ° Periodλ λ λ μ§κ°μ μ°¨μ΄λ₯Ό νννκΈ° μν κ²μ΄κ³ ,
Durationμ μκ°μ μ°¨μ΄λ₯Ό νννκΈ° μν κ²μ΄λ€.
- κ°μ²΄ μμ±νκΈ° now(), of()
now() λ νμ¬ λ μ§μ μκ°μ μ μ₯νλ κ°μ²΄λ₯Ό μμ±νλ€.
of() λ λ¨μν ν΄λΉ νλμ κ°μ μμλλ‘ μ§μ ν΄ μ£ΌκΈ°λ§ νλ©΄ λλ€.
λ μ§μ μκ°μμ νΉμ νλμ κ°λ§μ μ»μ λλ get() μ΄λ getμΌλ‘ μμνλ μ΄λ¦μ λ©μλλ₯Ό μ¬μ©νλ€.
- LocalDateμ LocalTime
κ°μ²΄λ₯Ό μμ±νλ λ°©λ²μ νμ¬μ λ μ§μ μκ°μ LocalDateμ LocalTimeμΌλ‘ κ°κ° λ³ννλ now()μ μ§μ λ λ μ§μ μκ°μ LocalDateμ LocalTimeκ°μ²΄λ₯Ό μμ±νλ of() κ° μλ€. λλ€ static λ©μλμ΄λ€.
νΉμ κ°μ κ°μ Έμ¬ λλ get() λλ getμΌλ‘ μμνλ μ΄λ¦μ λ©μλλ₯Ό μ¬μ©νλλ° μ£Όμν μ μ Calendarμ λ¬λ¦¬ μμ λ²μκ° 1 ~ 12μ΄κ³ , μμΌμ μμμΌμ΄ 1 μΌμμΌμ΄ 7μ΄λ€.
νλμ κ°μ λ³κ²½νκΈ° - with(), plus(), minus()
λ μ§μ μκ°μμ νΉμ νλ κ°μ λ³κ²½νλ €λ©΄, withμΌλ‘ μμνλ λ©μλλ₯Ό μ¬μ©νλ©΄ λλ€.
with()μ μ¬μ©νλ©΄ μνλ νλλ₯Ό μ§μ μ§μ ν μ μλ€.
βοΈ κ·Έλ¦¬κ³ μ£Όμν μ μ νλλ₯Ό λ³κ²½νλ λ©μλλ€μ νμ μλ‘μ΄ κ°μ²΄λ₯Ό μμ±ν΄μ λ°ννλ―λ‘ λμ μ°μ°μλ₯Ό κ°μ΄ μ¬μ©ν΄μΌνλ€!
- Instant
Instantλ μν¬ν¬νμ(EPOCH TIME, 1970-01-01 00:00:00 UTC)λΆν° κ²½κ³Όλ μκ°μ λλ Έμ΄ λ¨μλ‘ νννλ€.
μ¬λμκ² λΆνΈνμ§λ§, λ¨μΌ μ§λ²μΌλ‘λ§ λ€λ£¨κΈ° λλ¬Έμ κ³μ°νκΈ° μ½λ€.
Instantλ νμ UTC(+00:00)λ₯Ό κΈ°μ€μΌλ‘ νκΈ° λλ¬Έμ LocalTimeκ³Όλ μ°¨μ΄κ° μμ μ μλ€.
μλ₯Ό λ€μ΄ νκ΅μ μκ°λκ° +09:00μ΄λ―λ‘ Instantμ LocalTimeκ°μλ 9μκ°μ μ°¨μ΄κ° μλ€.
UTCλ Coordinated Universal Timeμ μ½μλ‘ μΈκ³ νμ μλΌκ³ νλ©°, 1972λ 1μ 1μΌλΆν° μνλ κ΅κ° νμ€μμ΄λ€.
μ΄μ μ μ¬μ©λ GMTμ UTCλ κ±°μ κ°μ§λ§ UTCκ° μ’ λ μ ννλ€.
- LocalDateTime κ³Ό ZonedDateTime
LocalDateμ LocalTimeμ ν©μ³λμ κ²μ΄ LocalDateTimeμ΄κ³ , LocalDateTimeμ μκ°λλ₯Ό μΆκ°ν κ²μ΄ ZonedDateTimeμ΄λ€.
LocalDateμ μκ° μ 보λ₯Ό μΆκ°νλ atTime()μ μ¬μ©νλ©΄ LocalDateTimeμ μ»μ μ μλ κ²μ²λΌ, LocalDateTimeμ atZone() μΌλ‘ μκ°λ μ 보λ₯Ό μΆκ°νλ©΄ ZonedDateTimeμ μ»μ μ μλ€.
- TemporalAdjusters
μμ£Ό μ°μΌλ§ν λ μ§ κ³μ°λ€μ λμ ν΄μ£Όλ λ©μλλ₯Ό μ μν΄λμ κ²μ΄ TemporalAdjustersμ΄λ€.
-> 보ν΅μ TemporalAdjustersμ μ μλ λ©μλλ‘ μΆ©λΆνκ² μ§λ§, νμνλ©΄ μμ£Ό μ¬μ©λλ λ μ§ κ³μ°μ ν΄μ£Όλ λ©μλλ₯Ό μ§μ λ§λ€ μλ μλ€.
- Periodμ Duration
Periodλ λ μ§μ μ°¨μ΄λ₯Ό, Durationμ μκ°μ μ°¨μ΄λ₯Ό κ³μ°νλ κ²μ΄λ€.
between()
: Period, Durationμ betweenμ ν΅ν΄μ μ»μ μ μλ€.
until()
:until() μ between()κ³Ό κ±°μ κ°μ μΌμ νλ€. between()μ staticλ©μλμ΄κ³ , until() μ μΈμ€ν΄μ€ λ©μλλΌλ μ°¨μ΄κ° μλ€.
- νμ±κ³Ό ν¬λ§·
λ¬Έμμ΄μ λ μ§ λλ μκ°μΌλ‘ λ³ννλ €λ©΄ static λ©μλ parse()λ₯Ό μ¬μ©νλ©΄ λλ€.