일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- SQL문의 실행 순서
- 복합 속성
- 트랜잭션의 특성
- Oracle
- 집합 연산
- JAVA JVM
- alert경고창
- css 선택자
- sql
- 연속성
- 다중값 속성
- 테이블의 구조
- 발생시점에 따른 엔터티의 종류
- 속성의 특징
- 제이쿼리text
- 자바스크립트경고창
- 자바JVM
- 속성의 종류
- 파생 속성
- 기본 속성
- 단일 속성
- SQL 종류
- 관계 연산
- 고립성
- java
- 결합 연산
- 설계 속성
- 자바스크립트innerText
- 유형과 무형에 따른 엔터티 종류
- 오라클
Archives
- Today
- Total
wms's Programming&Study
나라별 시간대가 필요할 때 LocalDateTime to ZonedDateTime 본문
이슈사항
백엔트 서버에서 사용하는 시간은 LocalDateTime을 사용했다.
프론트 쪽에 전달해줄때도 LocalDateTime 형식으로 전달해주었다.
하지만 LocalDateTime 형식으로 전달해주게 되면 타임존을 모르기 때문에
나라별 자동으로 시간대를 바꾸어주지 못한다.
해결방안
LocalDateTime 형식은 예시로 2023-01-01T20:49:09.698591 이렇게 나오는데
ZonedDateTime은 LocalDateTime 형식에 뒤에 Z가 붙어서 2023-01-01T20:49:09.698591Z 이런 형태로 나온다.
LocalDateTime은 ISO 8601의 기본 형식이다. 해당 시간이 로컬 시간 임을 의미한고
ZonedDateTime의 마지막 뒤에 붙어 있는 Z가 시간대를 나타내는 time-zone이다.
해당 시간이 UTC(GMT) 시간 임을 의미한다.
따라서 LocalDateTime에 시간대(time-zone)를 추가하면, ZonedDateTime이 된다.
시간대(time-zone)까지 다뤄야 하고 접속 나라에 따라 지역별로 시간대를 알아야할 때
ZonedDateTime 클래스를 사용하면 된다.
해결
아래와 같이 LocalDateTime에 ZoneId를 UTC로 지정해주면 로컬 시간에 타임존을 추가한 형식으로 만들 수 있다.
LocalDateTime localDateTime = LocalDateTime.now();
ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime, ZoneOffset.UTC);
참고 사이트
'Programming > JAVA' 카테고리의 다른 글
JPA Querydsl from절에 subquery 사용하기(@Subselect 이용) (1) | 2023.01.14 |
---|---|
JPA 엔티티 복합키 설정하기 (0) | 2023.01.08 |
프로젝트 어플리케이션 전체 서버 시간 UTC-> KOR로 설정하기 (2) | 2022.12.24 |
동기화, 비동기화, 컨커런트 컬랙션 (0) | 2021.10.16 |
인터페이스와 추상클래스 (0) | 2021.10.10 |