Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 从NSDate中提取日期组件,忽略本地时区_Swift_Nsdate - Fatal编程技术网

Swift 从NSDate中提取日期组件,忽略本地时区

Swift 从NSDate中提取日期组件,忽略本地时区,swift,nsdate,Swift,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 = calend

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)

你必须在日历上设置时区

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