2016-10-20 63 views
0

NSDate()給我很好的通用時間(非本地時間),這是完美的我的目的。我需要從此NSDate中提取日期組件(小時,分鐘等),但下面的代碼將時間轉換爲本地時間。如何提取給定的通用日期組件,而不將其更改爲本地時區:從NSDate提取日期compnents忽略當地時間和時區

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 
相關問題