[JAVA] 자바 날짜 타입 포맷
2024. 6. 27. 08:28ㆍ백엔드/JAVA
728x90
[문제상황]
- 전송 Timestamp currTime = new Timestamp(System.currentTimeMillis());
- 수신 String currTime : "20240627T07273+09"
일을 하던 도중 수신한 currTime을 다시 Timestamp 형으로 변환하여 DB에 적재를 해야하는 상황발생.
가장 큰 문제는 날짜 타입을 변환해야 하는 일이 생길 때 마다 구글링하여 적용하다 보니, 항상 어려움을 겪어왔던 기억으로 작성
문자열을 날짜로 표현하는 규격에는 RFC 822, ISO 8601 존재.
보편적으로 문자열을 Date형으로 변환해야 할 경우 SimpleDateFormat 클래스를 사용해서 변환을 하게됨.
SimpleDateFormat format 문자열 :https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html
문자열에 타임존을 나타내는 방법
규격 | 표기법 | 설명 | format | SimpleDateFormat format 적용 예시 |
|
RFC 822 | +0900 | UTC 기준 9시간 늦음 | Z | ||
KST | Korea Standard Time(+0900) | 2024-06-26 23:20:00.123KST |
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSZ") | ||
EST | East Standard Time(-0500) | ||||
IST | India Standard Time(+0530) | ||||
ISO 8601 | Z | 그리니치 표준시(+00과 동일) | X | 2024-06-26 23:20:00.123Z | new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSX") |
+09 | |||||
+0900 | |||||
+05:30 | 인도처럼 분단위 시간을 표현하는 경우 | XXX |
* ISO 8601 에서는 '2024-06-26T23:20:00.123Z' 와 같이 날짜와 시간 사이 T문자가 있는 것이 규격이고 이를 변환할 경우
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX")와 같이 'T'를 넣어줘야 함
출처 : https://zeany.net/62
728x90
'백엔드 > JAVA' 카테고리의 다른 글
[JAVA] 람다(Lamda) (0) | 2023.12.13 |
---|---|
[JAVA] Stream_ (2) Stream 중간연산 (2) | 2023.11.29 |
[JAVA] Stream_ map() 과 flatMap() 차이 (0) | 2023.11.29 |
[JAVA] Stream_ (1) Stream 생성 (2) | 2023.11.28 |
[JAVA] 맥북 자바 완적 삭제 (0) | 2023.03.27 |