diff --git a/src/main/java/com/newzet/api/article/business/dto/ArticleEntityDto.java b/src/main/java/com/newzet/api/article/business/dto/ArticleEntityDto.java index 0bae63c7..63f4b05f 100644 --- a/src/main/java/com/newzet/api/article/business/dto/ArticleEntityDto.java +++ b/src/main/java/com/newzet/api/article/business/dto/ArticleEntityDto.java @@ -4,6 +4,7 @@ import java.util.UUID; import com.newzet.api.article.domain.Article; +import com.newzet.api.common.util.UtcTimeZoneConverter; import lombok.Builder; import lombok.Getter; @@ -56,8 +57,8 @@ public Article toDomain() { isRead, isLike, isShare, - createdAt, - deletedAt + UtcTimeZoneConverter.toKst(createdAt), + UtcTimeZoneConverter.toKst(deletedAt) ); } } \ No newline at end of file diff --git a/src/main/java/com/newzet/api/article/controller/ArticleController.java b/src/main/java/com/newzet/api/article/controller/ArticleController.java index 84b9969c..3919c321 100644 --- a/src/main/java/com/newzet/api/article/controller/ArticleController.java +++ b/src/main/java/com/newzet/api/article/controller/ArticleController.java @@ -52,7 +52,7 @@ public ResponseEntity> getMonthlyArticleLis } @GetMapping("/{articleId}") - // @RequireAuth + @RequireAuth @Operation(summary = "아티클 단건 조회", description = "유저가 구독한 뉴스레터의 아티클을 조회한다.") public ResponseEntity> getArticle( diff --git a/src/main/java/com/newzet/api/article/controller/dto/ArticleDetailResponse.java b/src/main/java/com/newzet/api/article/controller/dto/ArticleDetailResponse.java index c5792712..7b04bb30 100644 --- a/src/main/java/com/newzet/api/article/controller/dto/ArticleDetailResponse.java +++ b/src/main/java/com/newzet/api/article/controller/dto/ArticleDetailResponse.java @@ -3,6 +3,8 @@ import java.time.LocalDateTime; import java.util.UUID; +import com.newzet.api.common.util.UtcTimeZoneConverter; + public record ArticleDetailResponse( String id, String newsletterName, @@ -15,7 +17,7 @@ public record ArticleDetailResponse( public static ArticleDetailResponse of(UUID id, String newsletterName, String newsletterImgUrl, String title, boolean isRead, LocalDateTime createdAt) { return new ArticleDetailResponse(id.toString(), newsletterName, newsletterImgUrl, title, - isRead, createdAt.toString()); + isRead, UtcTimeZoneConverter.toKst(createdAt).toString()); } public int getDay() { diff --git a/src/main/java/com/newzet/api/common/util/UtcTimeZoneConverter.java b/src/main/java/com/newzet/api/common/util/UtcTimeZoneConverter.java new file mode 100644 index 00000000..7a0dd074 --- /dev/null +++ b/src/main/java/com/newzet/api/common/util/UtcTimeZoneConverter.java @@ -0,0 +1,19 @@ +package com.newzet.api.common.util; + +import java.time.LocalDateTime; +import java.time.ZoneId; + +public class UtcTimeZoneConverter { + + private static final ZoneId UTC = ZoneId.of("UTC"); + private static final ZoneId KST = ZoneId.of("Asia/Seoul"); + + public static LocalDateTime toKst(LocalDateTime utcDateTime) { + if (utcDateTime == null) { + return null; + } + return utcDateTime.atZone(UTC) + .withZoneSameInstant(KST) + .toLocalDateTime(); + } +}