Skip to content

Commit 4fd0102

Browse files
committed
[AN] feat(#554): localDateTime 시간대 변경하기
UTC -> Korea
1 parent 4b885b7 commit 4fd0102

File tree

8 files changed

+44
-43
lines changed

8 files changed

+44
-43
lines changed

android/gitudy/presentation/src/main/java/com/takseha/presentation/adapter/CommentListRVAdapter.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import com.bumptech.glide.Glide
1010
import com.takseha.data.dto.mystudy.StudyComment
1111
import com.takseha.presentation.R
1212
import com.takseha.presentation.databinding.ItemCommentBinding
13+
import com.takseha.presentation.ui.common.UTCToKoreanTimeConverter
1314
import java.time.LocalDateTime
1415

1516
class CommentListRVAdapter(val context: Context, val commentList: List<StudyComment>) :
@@ -35,8 +36,8 @@ class CommentListRVAdapter(val context: Context, val commentList: List<StudyComm
3536
.into(holder.profileImg)
3637

3738
holder.content.text = commentList[position].content
38-
holder.date.text =
39-
LocalDateTime.parse(commentList[position].commentSetDate).toLocalDate().toString()
39+
val localDateTime = LocalDateTime.parse(commentList[position].commentSetDate)
40+
holder.date.text = UTCToKoreanTimeConverter().convertToKoreaDate(localDateTime)
4041
}
4142

4243
override fun getItemCount(): Int {

android/gitudy/presentation/src/main/java/com/takseha/presentation/adapter/CommitListRVAdapter.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import com.takseha.data.dto.mystudy.Commit
1111
import com.takseha.data.dto.mystudy.CommitStatus
1212
import com.takseha.presentation.R
1313
import com.takseha.presentation.databinding.ItemCommitBinding
14+
import com.takseha.presentation.ui.common.UTCToKoreanTimeConverter
15+
import java.time.LocalDateTime
1416

1517
class CommitListRVAdapter(val context : Context, val commitList : List<Commit>, val onClickListener: ToDoListRVAdapter.OnClickListener) : RecyclerView.Adapter<CommitListRVAdapter.ViewHolder>() {
1618

@@ -39,7 +41,8 @@ class CommitListRVAdapter(val context : Context, val commitList : List<Commit>,
3941
@RequiresApi(Build.VERSION_CODES.O)
4042
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
4143
holder.commitTitle.text = commitList[position].message
42-
holder.commitInfo.text = context.getString(R.string.study_to_do_commit_info, commitList[position].name, commitList[position].commitDate)
44+
val localDateTime = LocalDateTime.parse(commitList[position].commitDate)
45+
holder.commitInfo.text = context.getString(R.string.study_to_do_commit_info, commitList[position].name, UTCToKoreanTimeConverter().convertToKoreaDate(localDateTime))
4346
when (commitList[position].status) {
4447
CommitStatus.COMMIT_APPROVAL -> holder.commitStatus.text = "승인완료"
4548
CommitStatus.COMMIT_DELETE -> {

android/gitudy/presentation/src/main/java/com/takseha/presentation/adapter/DetailCommentListRVAdapter.kt

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import com.bumptech.glide.Glide
1515
import com.takseha.data.dto.mystudy.StudyComment
1616
import com.takseha.presentation.R
1717
import com.takseha.presentation.databinding.ItemCommentDetailBinding
18+
import com.takseha.presentation.ui.common.UTCToKoreanTimeConverter
1819
import java.time.LocalDateTime
1920
import java.time.format.DateTimeFormatter
2021
import java.util.Locale
@@ -53,8 +54,8 @@ class DetailCommentListRVAdapter(val context: Context, val commentList: List<Stu
5354
.into(holder.profileImg)
5455

5556
holder.writerName.text = commentList[position].userInfo.name
56-
holder.date.text =
57-
getCreatedDate(commentList[position].commentSetDate)
57+
val localDateTime = LocalDateTime.parse(commentList[position].commentSetDate)
58+
holder.date.text = UTCToKoreanTimeConverter().convertToKoreaDate(localDateTime)
5859
holder.content.text = commentList[position].content
5960

6061
if (commentList[position].isMyComment) {
@@ -76,14 +77,6 @@ class DetailCommentListRVAdapter(val context: Context, val commentList: List<Stu
7677

7778
}
7879

79-
@RequiresApi(Build.VERSION_CODES.O)
80-
private fun getCreatedDate(date: String): String {
81-
val dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm", Locale.getDefault())
82-
val localDateTime = LocalDateTime.parse(date)
83-
84-
return localDateTime.format(dateFormat)
85-
}
86-
8780
private fun showPopupMenu(view: View, position: Int) {
8881
val popup = PopupMenu(context, view)
8982
popup.inflate(R.menu.delete_menu)

android/gitudy/presentation/src/main/java/com/takseha/presentation/adapter/FeedRVAdapter.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,10 @@ import com.takseha.data.dto.feed.StudyPeriodStatus
1414
import com.takseha.data.dto.feed.UserInfo
1515
import com.takseha.presentation.R
1616
import com.takseha.presentation.databinding.ItemFeedBinding
17+
import com.takseha.presentation.ui.common.UTCToKoreanTimeConverter
1718
import com.takseha.presentation.viewmodel.feed.StudyInfoWithBookmarkStatus
1819
import java.time.LocalDateTime
20+
import java.time.ZoneId
1921
import java.time.temporal.ChronoUnit
2022

2123
class FeedRVAdapter(
@@ -138,10 +140,11 @@ class FeedRVAdapter(
138140
@RequiresApi(Build.VERSION_CODES.O)
139141
private fun calculateTotalDayCnt(createdDate: String): Long {
140142
val createdDateLocalDate = LocalDateTime.parse(createdDate)
141-
143+
val utcZonedDateTime = createdDateLocalDate.atZone(ZoneId.of("UTC"))
144+
val koreaZonedDateTime = utcZonedDateTime.withZoneSameInstant(ZoneId.of("Asia/Seoul"))
142145
val nowDate = LocalDateTime.now()
143146

144-
return ChronoUnit.DAYS.between(createdDateLocalDate, nowDate)
147+
return ChronoUnit.DAYS.between(koreaZonedDateTime, nowDate)
145148
}
146149

147150
private fun setCategoryList(holder: ViewHolder, position: Int) {

android/gitudy/presentation/src/main/java/com/takseha/presentation/adapter/NoticeListRVAdapter.kt

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import androidx.annotation.RequiresApi
99
import androidx.recyclerview.widget.RecyclerView
1010
import com.takseha.data.dto.home.Notice
1111
import com.takseha.presentation.databinding.ItemAlertBinding
12+
import com.takseha.presentation.ui.common.UTCToKoreanTimeConverter
1213
import java.time.LocalDateTime
1314
import java.time.format.DateTimeFormatter
1415
import java.util.Locale
@@ -35,8 +36,8 @@ class NoticeListRVAdapter(val context: Context, val noticeList: List<Notice>) :
3536

3637
@RequiresApi(Build.VERSION_CODES.O)
3738
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
38-
holder.date.text =
39-
getCreatedDate(noticeList[position].localDateTime)
39+
val localDateTime = LocalDateTime.parse(noticeList[position].localDateTime)
40+
holder.date.text = UTCToKoreanTimeConverter().convertToKoreaDate(localDateTime)
4041
holder.title.text = noticeList[position].title
4142
holder.content.text = noticeList[position].message
4243

@@ -48,14 +49,6 @@ class NoticeListRVAdapter(val context: Context, val noticeList: List<Notice>) :
4849
}
4950
}
5051

51-
@RequiresApi(Build.VERSION_CODES.O)
52-
private fun getCreatedDate(date: String): String {
53-
val dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm", Locale.getDefault())
54-
val localDateTime = LocalDateTime.parse(date)
55-
56-
return localDateTime.format(dateFormat)
57-
}
58-
5952
override fun getItemCount(): Int {
6053
return noticeList.size
6154
}

android/gitudy/presentation/src/main/java/com/takseha/presentation/adapter/StudyApplyMemberListRVAdapter.kt

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import com.bumptech.glide.Glide
1111
import com.takseha.data.dto.mystudy.StudyApplyMember
1212
import com.takseha.presentation.R
1313
import com.takseha.presentation.databinding.ItemApplyMemberBinding
14+
import com.takseha.presentation.ui.common.UTCToKoreanTimeConverter
1415
import java.time.LocalDateTime
1516
import java.time.format.DateTimeFormatter
1617
import java.util.Locale
@@ -42,8 +43,8 @@ class StudyApplyMemberListRVAdapter(val context: Context, val studyApplyMemberLi
4243
.error(R.drawable.logo_profile_default)
4344
.into(holder.memberProfileImg)
4445

45-
holder.date.text =
46-
getCreatedDate(studyApplyMemberList[position].createdDateTime)
46+
val localDateTime = LocalDateTime.parse(studyApplyMemberList[position].createdDateTime)
47+
holder.date.text = UTCToKoreanTimeConverter().convertToKoreaDate(localDateTime)
4748
holder.memberName.text = studyApplyMemberList[position].name
4849

4950
// 클릭 이벤트 처리
@@ -54,14 +55,6 @@ class StudyApplyMemberListRVAdapter(val context: Context, val studyApplyMemberLi
5455
}
5556
}
5657

57-
@RequiresApi(Build.VERSION_CODES.O)
58-
private fun getCreatedDate(date: String): String {
59-
val dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm", Locale.getDefault())
60-
val localDateTime = LocalDateTime.parse(date)
61-
62-
return localDateTime.format(dateFormat)
63-
}
64-
6558
override fun getItemCount(): Int {
6659
return studyApplyMemberList.size
6760
}

android/gitudy/presentation/src/main/java/com/takseha/presentation/adapter/ToDoListRVAdapter.kt

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ class ToDoListRVAdapter(val context: Context, val todoList: List<Todo>) :
5151
holder.todoTitle.text = todoList[position].title
5252
holder.todoDate.text = todoList[position].todoDate
5353
holder.todoDetail.text = todoList[position].detail
54-
// setCommitList(holder.commitList, todoList[position].commitList)
5554
setCommitList(holder, position)
5655

5756
if (todoList[position].todoDate == LocalDate.now().toString()) {
@@ -73,13 +72,6 @@ class ToDoListRVAdapter(val context: Context, val todoList: List<Todo>) :
7372
}
7473
}
7574

76-
// private fun setCommitList(commitListView: RecyclerView, commitList: List<Commit>) {
77-
// val commitListRVAdapter = CommitListRVAdapter(context, commitList, this.onClickListener!!)
78-
//
79-
// commitListView.adapter = commitListRVAdapter
80-
// commitListView.layoutManager = LinearLayoutManager(context)
81-
// }
82-
8375
private fun setCommitList(holder: ViewHolder, position: Int) {
8476
holder.commitList.layoutManager =
8577
LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.takseha.presentation.ui.common
2+
3+
import java.time.LocalDateTime
4+
import java.time.ZoneId
5+
import java.time.format.DateTimeFormatter
6+
7+
class UTCToKoreanTimeConverter {
8+
fun convertToKoreaTime(localDateTimeUTC: LocalDateTime): String {
9+
val utcZonedDateTime = localDateTimeUTC.atZone(ZoneId.of("UTC"))
10+
val koreaZonedDateTime = utcZonedDateTime.withZoneSameInstant(ZoneId.of("Asia/Seoul"))
11+
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")
12+
13+
return koreaZonedDateTime.format(formatter)
14+
}
15+
16+
fun convertToKoreaDate(localDateTimeUTC: LocalDateTime): String {
17+
val utcZonedDateTime = localDateTimeUTC.atZone(ZoneId.of("UTC"))
18+
val koreaZonedDateTime = utcZonedDateTime.withZoneSameInstant(ZoneId.of("Asia/Seoul"))
19+
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
20+
21+
return koreaZonedDateTime.format(formatter)
22+
}
23+
}

0 commit comments

Comments
 (0)