2016-10-20 2 views
0

NSDate() 내게 가장 적합한 세계 표준시 (현지 시간이 아님)를 제공합니다. 이 NSDate에서 날짜 구성 요소 (시간, 분 등)를 추출해야하지만 코드 아래에서 시간을 현지 시간으로 변환합니다. 특정 범용 날짜의 구성 요소를 현지 표준 시간대로 변경하지 않고 어떻게 추출 할 수 있습니까?현지 시간 및 시간대를 무시하고 NSDate의 날짜 구성 요소를 추출하십시오.

let date = NSDate() 
print(date) // Prints 2016-10-20 20:10:20 +0000 (Good Universal Time) 
let calendar = Calendar.current 
let hour = calendar.component(.hour, from date as Date) 
print(hour) // Prints 16 (Bad local hour) 

답변

2

달력에 시간대를 설정해야합니다.

let date = NSDate() 
print(date) // Prints 2016-10-20 20:10:20 +0000 (Good Universal Time) 
var calendar = Calendar.current 
calendar.timeZone = TimeZone(abbreviation: "UTC")! 
let hour = calendar.component(.hour, from: date as Date) 
print(hour) // Prints 20