2016-05-31 43 views
0

我有一个仅限于时间的UIDatePicker。这个时间到达后,本地通知就会被触发。但是,如果我打印出应该熄灭的时间,它总是在错误的时区。从NSDate转换时区

因此,我想在将本地时区传递给用户本地时区之前,将时区转换为本地通知功能。

我试了一下这个代码,但是这显然是行不通的

@IBOutlet weak var timePicker: UIDatePicker! 

func convertTimeZone() ->NSDate { 
     var date = timePicker.date 
     var timeZone = NSTimeZone() 
     date.TimeZone.localTimeZone 
    } 
+0

有大约一百万个问题。 NSDate _没有时区。 NSDate始终以UTC格式打印。你试图做的几乎肯定是完全错误的。 – gnasher729

回答

0
var date = timePicker.date 
var timeZone = NSTimeZone.localTimeZone() //1 

let f = NSDateFormatter() 
f.timeZone = timeZone //2 
f.dateFormat = "HH:mm:ss" 

let dateInUserTimezone = f.dateFromString(f.stringFromDate(date))! //3 

这将使用当前用户的时区(1),然后使用一个日期格式(2)更改日期的时区(3)将日期转换为字符串,然后使用正确的时区返回日期。

+0

非常感谢! – R3ptor