Things take time

[SWIFT] 현재 날짜, 형식, 시간, 분 구하기 / 날짜 차이 구하기 본문

iOS (기능)

[SWIFT] 현재 날짜, 형식, 시간, 분 구하기 / 날짜 차이 구하기

겸손할 겸 2019. 6. 12. 17:40

안드로이드와 마찬가지,

방식은 비슷하다.

 

Date형으로 바꿔줘야하며, 넘겨받은 값들은 같은 Format을 유지해야 한다.

안드로이드의 경우 getTime()을 통해 변환한 Long값을 1000 * 시&분&초 등으로 했다면, 스위프트에서는 timeIntervalSince로 구할 수 있다.

        let formatter = DateFormatter()
        formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
        let date = Date()
        let nowDateStr = formatter.string(from: date)
        let nowDate = formatter.date(from: nowDateStr)
        for frndLst in frndLstList{
            if let inputDm = frndLst["inputDm"] as? String{
                let inputDate = formatter.date(from: inputDm)
                let diffBetweenDates = nowDate!.timeIntervalSince(inputDate!)
                let diffHour = Int(diffBetweenDates / (60 * 60))
                print("diffHour is \(diffHour)")
            }
        }

frndLstList는 서버에서 넘겨받은 데이터 값(문자)이며, 그 컬럼 중 inputDm이란 값을 얻어와 Date타입으로 변환한 것과 앞에서 구한 현재 시간의 변환 Date값을 timeIntervalSince로 구한다.

 

당연한 이야기지만, Since는 ~한 이후로 란 뜻을 지니므로, 앞에 오는 Date가 더 큰 값(이후의 값)이 와야 양수의 값이 리턴된다.

diffHour는 60분 * 60초의 값, 3600으로 나누어준다. 안드로이드처럼 1000을 곱해줄 필요는 없다.