Date - SimpleDateFormat, .format, setLenient, .parse

양혜정·2024년 2월 3일
0

Begin_java

목록 보기
46/71

Date import 종류

-> java.sql => 연, 월, 일만 나타낸다. (시,분,초 X)
-> java.util => 연, 월, 일, 시, 분, 초 를 나타낸다.


- 현재시각 나타내기

Date now = new Date();
// now : Sat Feb 03 22:50:46 KST 2024
// now : Sat Feb 03 22:50:46 GMT+09:00 2024
// KST : 한국 표준시 , GMT : 그리니치 평균시

- 보기 쉽게 나타내기

SimpleDateFormat sdformat
	= new SimpleDateFormat(yyyy-MM-dd HH:mm:ss");
// yyyy-MM-dd HH:mm:ss 형식으로 나타내기
// 2024-02-03 22:50:46
// 활용
저장할 장소 = sdformat.format(now);

- 날짜 타입 format

--> ※ 날짜와 시간은 헷갈리지 않게 "2024-02-03 22:50:46" 으로 맞추었습니다.

%tF => 'yyyy-mm-dd' 형식으로 변환

String currentTime = String.format("%tF",now);
// currentTime : 2024-02-03

%tT => 'HH:MM:SS' 형식으로으로 변환

String currentTime = String.format("%tT",now);
// currentTime : 22:50:46

%tp => 오전/오후 출력

String currentTime = String.format("%tp",now);
// currentTime : 오후

%tA => 요일명 출력

String currentTime = String.format("%tA",now);
// currentTime : 토요일

%tY => 4자리 년도만 출력

String currentTime = String.format("%tY",now);
// currentTime : 2024

%tB => 월의 이름(January, February ...) 출력

String currentTime = String.format("%tB",now);
// currentTime : 2월
// 컴퓨터가 한국위치로 설정되어있어 February 가 아닌 2월이 뜸.

%tm => 월의 숫자(01,02,03 ... 12) 출력

String currentTime = String.format("%tm",now);
// currentTime : 02

%td => 월의 일수(01,02,03 ... 31) 출력

String currentTime = String.format("%td",now);
// currentTime : 03

%te => 월의 일수(1,2,3, ... 31) 출력

String currentTime = String.format("%te",now);
// currentTime : 3

%tk => 시간을 0~23 으로 출력

String currentTime = String.format("%tk",now);
// currentTime : 22

%tl => 시간을 1~12 로 출력

String currentTime = String.format("%tl",now);
// currentTime : 10

%tM => 분을 00~59 로 출력

String currentTime = String.format("%tM",now);
// currentTime : 50

%tS => 초를 00~59 로 출력

String currentTime = String.format("%tS",now);
// currentTime : 46

%tZ => 타임존을 출력 (한국 : KST)

String currentTime = String.format("%tA",now);
// currentTime : KST

여러 날짜타입 한번에 사용하기

String currentTime = String.format(" %tF %tp %tT % tA % tZ"
,now ,now ,now ,now ,now);
// currentTime : 2024-02-03 오후 10: 50:46 토요일 KST

입력한 날짜가 실제로 유효한지 검사하기

-> setLenient

SimpleDateFormat sdformat= new SimpleDateFormat("yyyyMMdd");
sdformat.setLenient(false);
// false 로 해주어야 날짜 타입으로 변경할 때 오류라고 표시된다.

문자열을 날짜 형태로 변환하기, 유효성 검사 실행

.parse => String 타입이 Date 타입으로 return

try{
	Date d = sdformat.parse("19990520");
    System.out.println(d);
    // Thu May 20 00:00:00 KST 1999
} catch(ParseException e) { // 달력에 존재하지 않을 경우
	System.out.println(">> 달력에 존재하지 않습니다.<<");
  }

참고

.parse : https://velog.io/@jjoung-2j/%EB%AC%B8%EC%9E%90%EC%97%B4-%ED%95%A8%EC%88%98


정리

my.day11.b.calendar -> Main_calendar
my.day11.c.abstraction -> Gujikja

0개의 댓글

관련 채용 정보