라이브 시작시간 UTC 적용
라이브 상세와 수정 화면에서 UTC 기준 시간을 표시한다. 날짜 표기는 OS 언어 설정의 기본 포맷을 사용한다.
This commit is contained in:
@@ -15,6 +15,16 @@ extension Date {
|
||||
return formatter.string(from: self)
|
||||
}
|
||||
|
||||
func localizedDateTimeString(dateStyle: DateFormatter.Style = .medium,
|
||||
timeStyle: DateFormatter.Style = .short) -> String {
|
||||
let formatter = DateFormatter()
|
||||
formatter.dateStyle = dateStyle
|
||||
formatter.timeStyle = timeStyle
|
||||
formatter.locale = Locale.autoupdatingCurrent
|
||||
formatter.timeZone = TimeZone.current
|
||||
return formatter.string(from: self)
|
||||
}
|
||||
|
||||
func currentTimeMillis() -> Int64 {
|
||||
return Int64(self.timeIntervalSince1970 * 1000)
|
||||
}
|
||||
|
||||
@@ -95,4 +95,12 @@ extension String {
|
||||
"time": time
|
||||
]
|
||||
}
|
||||
|
||||
func parseUtcIsoDate() -> Date? {
|
||||
let formatter = DateFormatter()
|
||||
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
|
||||
formatter.locale = Locale(identifier: "en_US_POSIX")
|
||||
formatter.timeZone = TimeZone(secondsFromGMT: 0)
|
||||
return formatter.date(from: self)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ struct GetRoomDetailResponse: Decodable {
|
||||
let tags: [String]
|
||||
let channelName: String?
|
||||
let beginDateTime: String
|
||||
let beginDateTimeUtc: String
|
||||
let numberOfParticipants: Int
|
||||
let numberOfParticipantsTotal: Int
|
||||
let manager: GetRoomDetailManager
|
||||
|
||||
@@ -94,7 +94,8 @@ struct LiveDetailView: View {
|
||||
.padding(.top, 6.7)
|
||||
|
||||
HStack(spacing: 0) {
|
||||
Text(room.beginDateTime.convertDateFormat(from: "yyyy.MM.dd EEE hh:mm a", to: "yyyy년 MM월 dd일 (E) a hh시 mm분", locale: Locale(identifier: "en_US_POSIX")))
|
||||
let beginDateText = room.beginDateTimeUtc.parseUtcIsoDate()?.localizedDateTimeString() ?? room.beginDateTime
|
||||
Text(beginDateText)
|
||||
.font(.custom(Font.medium.rawValue, size: 12))
|
||||
.foregroundColor(Color(hex: "bbbbbb"))
|
||||
|
||||
|
||||
@@ -52,12 +52,19 @@ final class LiveRoomEditViewModel: ObservableObject {
|
||||
notice = room!.notice
|
||||
numberOfPeople = String(room!.numberOfParticipantsTotal)
|
||||
|
||||
if let beginDate = room!.beginDateTimeUtc.parseUtcIsoDate() {
|
||||
reservationDate = beginDate
|
||||
reservationTime = beginDate
|
||||
} else {
|
||||
let fromFormatter = DateFormatter()
|
||||
fromFormatter.dateFormat = "yyyy.MM.dd EEE hh:mm a"
|
||||
fromFormatter.locale = Locale(identifier: "en_US_POSIX")
|
||||
|
||||
reservationDate = fromFormatter.date(from: room!.beginDateTime)!
|
||||
reservationTime = fromFormatter.date(from: room!.beginDateTime)!
|
||||
if let legacyDate = fromFormatter.date(from: room!.beginDateTime) {
|
||||
reservationDate = legacyDate
|
||||
reservationTime = legacyDate
|
||||
}
|
||||
}
|
||||
|
||||
let beginDate = reservationDate.convertDateFormat(dateFormat: "yyyy-MM-dd")
|
||||
let beginTime = reservationTime.convertDateFormat(dateFormat: "HH:mm")
|
||||
|
||||
Reference in New Issue
Block a user