티스토리 뷰
개요
- 백엔드 엔지니어 입장에서 Java에서의 날짜/시간 데이터를 데이터베이스에 저장하고 코드 레벨에서 다루기에 가장 안전한 타입은 UTC+0 오프셋으로 고정된
Instant
와 이를 UTC+0으로 변환한OffsetDateTime
이다. 이번 글에서는 이 2개 클래스의 사용법을 간단히 정리하였다.
Instant 현재 순간 생성
// 현재 순간을 UTC+0 기준의 timestamp 정보를 담은 Instant 객체에 저장
val instant: Instant = Instant.now()
Instant to ISO 8601 String
// Instant 객체를 UTC+0 으로 고정된 ISO 8601 문자열로 변환
// 2021-12-24T15:41:49.243777Z
val string: String = instant.toString()
ISO 8601 String to Instant
// ISO 8601 문자열을 Instant 객체로 변환
val instant = Instant.from(DateTimeFormatter.ISO_DATE_TIME.parse("2021-12-24T15:41:49.243777Z"))
Instant to OffsetDateTime
// Instant 객체를 OffsetDateTime 객체로 변환
val offsetDateTime: OffsetDateTime = instant.atOffset(ZoneOffset.UTC)
OffsetDateTime 현재 시간 생성
// 현재 시간을 UTC+0 Offset이 지정된 OffsetDateTime 객체에 저장
val offsetDateTime: OffsetDateTime = OffsetDateTime.now(ZoneOffset.UTC)
OffsetDateTime to Instant
// OffsetDateTime 객체를 Instant 객체로 변환
val instant = offsetDateTime.toInstant()
OffsetDateTime 객체를 5분 단위로 반올림
// OffsetDateTime 객체를 5분 단위로 반올림하고 초 이하는 절삭
val offsetDateTime2 = offsetDateTime
.withMinute(offsetDateTime.minute - offsetDateTime.minute % 5)
.withSecond(0)
.withNano(0)
참고 글
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- MySQL
- Spring Boot
- graylog
- DynamoDB
- JavaScript
- 평속
- 로드 바이크
- 구동계
- Docker
- chrome
- jsp
- Spring MVC 3
- 태그를 입력해 주세요.
- Tomcat
- JHipster
- jpa
- 알뜰폰
- Kendo UI Web Grid
- 로드바이크
- spring
- maven
- java
- Kendo UI
- CentOS
- bootstrap
- node.js
- kotlin
- Eclipse
- jstl
- 자전거
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함