아미(아름다운미소)

날짜와 시간 다루기 (Swift) 본문

랭귀지/SWIFT

날짜와 시간 다루기 (Swift)

유키공 2018. 1. 3. 11:00
현재 표준 시간 얻기
import Foundation

let date1 = NSDate()
print(date1) //2016-05-02 04:35:06 +0000
NSDate()를 통해 현재 표준시간을 얻을 수 있습니다.

현재 현지시간 얻기
import Foundation

let date2 = NSDate(timeIntervalSinceNow: NSTimeInterval(NSTimeZone.systemTimeZone().secondsFromGMT))
print(date2) //2016-05-02 13:36:21 +000
NSDate()에서 timeIntervalSinceNow를 지정하여 현지 시간을 얻습니다.

날짜 및 시간 요소 얻기
import Foundation

let date3 = NSDate()

let calendar = NSCalendar.currentCalendar()
let component = calendar.components([NSCalendarUnit.Year, NSCalendarUnit.Month, NSCalendarUnit.Day, NSCalendarUnit.Hour, NSCalendarUnit.Minute, NSCalendarUnit.Second], fromDate: date3)

print(component.year)   //2016
print(component.month)  //5
print(component.day)    //2
print(component.hour)   //14
print(component.minute) //8
print(component.second) //30
보통 시간요소를 얻기 위해 NSCalendar를 사용하지만 이 때 NSDate()는 시차를 지정하지 않도록 한다. 얻을 수 있는 요소는 로컬시간 차이가 반영된다.

몇 초를 더 추가하고 싶은 경우
import Foundation

var date4 = NSDate()
date4 = NSDate(timeIntervalSinceNow: 9 * 60 * 60)
print(date4)
NSDate()의 timeIntervalSinceNow를 통해 추가할 초를 지정한다.

시간 차이를 얻고 싶은 경우
var date1 = NSDate()
var date2 = NSDate(timeIntervalSinceNow: 9 * 60 * 60)

var diffsec = date2.timeIntervalSinceDate(date1)
print(diffsec)
timeIntervalSinceDate()를 통해 처리가능하다.

날짜 및 시간표시를 문자열로 변환하기
import Foundation

var date1 = NSDate()

let formatdate = NSDateFormatter()
formatdate.dateFormat = "yyyy/MM/dd HH:mm:ss"
let nowdate = formatdate.stringFromDate(date1)
print(nowdate) //2016/05/02 14:12:50
NSDateFormatter()의 stringFromDate()를 사용한다.

문자열을 날짜데이터로 변환하기
import Foundation

var date1 = NSDate()

let formatdate = NSDateFormatter()
formatdate.dateFormat = "yyyy-MM-dd HH:mm:ss"

let date = formatdate.dateFromString("2016-05-02 12:01:03")
print(date) // Optional(2016-05-02 03:01:03 +0000)
NSDateFormmater()의 dateFromString()을 사용한다.

Comments