본문 바로가기
Back-End/Java

TIL 230612 : 날짜 시간 데이터와 인사하기. (2. SimpleDateFormat)

by 우인입니다 2023. 6. 12.

 

1. Calendar, Date (지난 포스팅)

2. SimpleDateFormat

 

 

참고 링크

https://ho-log.tistory.com/98

https://bangu4.tistory.com/200

https://blogdeveloperspot.blogspot.com/2018/12/java-localdatetimenow-format.html

추가링크

https://sujl95.tistory.com/85  Inctance vs LocalDateTime

https://www.daleseo.com/java8-zoned-date-time/ ZonedTimeDate

https://covenant.tistory.com/255 총정리

  


2. SimpleDateFormat

SimpleDateFormat 클래스는 날짜 데이터를 원하는 형태로 구성하는데 사용되는 형식화 클래스이다.

 

Date date = new Date();
SimpleDateFormat sdf;

sdf = new SimpleDateFormat("YYYY-MM-dd");
System.out.println(sdf.format(date)); // 2022-01-06

sdf = new SimpleDateFormat("YYYY/MM/dd");
System.out.println(sdf.format(date)); // 2022/01/06

1. 아래 패턴을 포함해 SimpleDateFormat 객체를 생성한다.

2. 해당 객체내에 format메소드안에 Date객체를 매개변수로 넣어준다.

 

문자 날짜 및 시간 요소  표시 예제
G Era designator Text AD
y Year Year 1996; 96
Y Week year Year 2009; 09
M Month in year (context sensitive) Month July; Jul; 07
L Month in year (standalone form) Month July; Jul; 07
w Week in year Number 27
W Week in month Number 2
D Day in year Number 189
d Day in month Number 10
F Day of week in month Number 2
E Day name in week Text Tuesday; Tue
u Day number of week (1 = Monday, ..., 7 = Sunday) Number 1
a Am/pm marker Text PM
H Hour in day (0-23) Number 0
k Hour in day (1-24) Number 24
K Hour in am/pm (0-11) Number 0
h Hour in am/pm (1-12) Number 12
m Minute in hour Number 30
s Second in minute Number 55
S Millisecond Number 978
z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
Z Time zone RFC 822 time zone -0800
X Time zone ISO 8601 time zone -08; -0800; -08:00

 


목표하는 형식

위에 나온 형식대로 출력이 되지 않았다.

Time Zone에 가운데 : 이 빠져있다.

 

ZonedDateTime, LocalDateTime 등 다른 형식을 엄청 찾았는 데, 결국 Z가 아니라 XXX를 넣어주면 됐었다.

 

아래는 뺑뺑돌아온 여러가지 삽질들과.. 링크들이다.

LocalDateTime에는 offset정보가 없어서, ISO_OFFSET_DATE_TIME 포매터가 오류가 난다.
OFFSET을 제외하면 나오는 형식

 

+지역정보 같이 넣어주기

 

new SimpleDateFormat("yyyy년 MM월 dd일 E요일", Locale.KOREAN);

날짜 포맷 형식 지정 시
지역설정을 한날짜 포맷 형식 지정 시국어로 해야 mon요일, tue요일 등 방지할 수 있다.

 

+ 영어권 표현

 


너무 사소한 것에 시간을 많이 뺏긴 것 같다.

이쯤하고.. 스프링 배워야지..😭

 

느낀점. 달력 클래스 하나도 공식문서 보니까 빡세게 만들었다..