날짜와 시간

서지우·2023년 7월 13일
0

JAVA

목록 보기
23/28

▶ java.util.Date
- 날짜와 시간을 다룰 목적으로 만들어진 클래스
- Date의 메서드는 대부분 deprecated되었지만, 여전히 쓰임

▶ java.util.Calendar
- Date클래스를 개선한 클래스, 여전히 단점 존재

▶ java.time패키지
- Date와 Calendar의 단점을 개선한 새로운 클래스들을 제공(JDK1.8)

Calendar

- 추상 클래스이므로 getInstance()를 통해 구현된 객체를 얻어야 함


java.time패키지

- Date, Calendar의 단점을 보완하기 위해 추가된 패키지
- 이 패키지에 속한 클래스들은 모두 '불변'   


LocalDate와 LocalTime

- java.time패키지의 핵심
- now()는 현재 날짤 시간을, of()는 특정 날짜 시간을 지정할 때 사용
- 일 단위나 초 단위로도 지정가능
- parse()로 문자열을 LocalDatesk LocalTime으로 변환할 수 있음

- LocalDate와 LocalTime에서 특정 필드의 값 가져오는 메서드

- get(), getLong()에 사용할 수 있는 필드의 목록 (*는 getLong()사용)

- with(), plus(), minus()로 특정 필드의 값을 변경(새로운 객체가 반환)


날짜와 시간의 형식화(formatting)

- java.time.format패키지 : 형식화와 관련된 클래스 제공
- DateTimeFromatter의 format()를 사용해서 날짜와 시간을 형식화


DateTimeFromatter의 ofPattern()으로 직접 출력형식 작성하기

- 출력형식의 작성에 사용되는 기호의 목록


날짜와 시간 문자열 파싱하기

- parse()를 이용하면 문자열을 날짜와 시간으로 파싱할 수 있다.

- DateTimeFormatter에 정의된 형식을 사용할 때는 다음과 같이 한다.

- 자주 사용되는 형식은 ISO_LOCAL_DATE 등을 사용하지 않고 파싱 가능

- ofPattern()으로 파싱할 수도 있다.

실습 - ch10 / S03.java

주석으로 설명..

package ch10;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

public class S03 {
    public static void main(String[] args) {
        // 현재 시간을 가져온다
        // 실행한 컴퓨터의 시간대를 가져온다(Local)
        LocalDate now = LocalDate.now();
        System.out.println(now);

        // plus minus / 예약 같은 기능을 만들 때 사용한다
        LocalDate plusDays = now.plusDays(2);
        System.out.println(plusDays);

        // parse -> 다른 타입의 데이터나 가공되지 않은 데이터를 사용할 데이터로 바꾸는 작업

        LocalDateTime parse = LocalDateTime.parse("2023-07-08T14:21:01.748084800");
        System.out.println(parse);
        
        DateTimeFormatter ofPattern = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 HH시 mm분 ss초");
        LocalDateTime parse2 = LocalDateTime.parse("1998년 01월 30일 00시 00분 00초", ofPattern);
        System.out.println(parse2);

        System.out.println(LocalDate.now());
        System.out.println(LocalTime.now());
    }
}
profile
미래가 기대되는 풀스택개발자 공부 이야기~~

0개의 댓글