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을 곱해줄 필요는 없다.