从NSDate转换时区

时间:2016-05-31 22:43:37

标签: swift uidatepicker nstimezone

我有一个仅限时间的UIDatePicker。此时很快就会触发localNotification。但是如果我打印出它应该开火的时间,它总是在错误的时区。

所以我想在我在本地通知功能中传递时区之前将时区转换为用户本地时区。

我尝试使用此代码,但显然无效

@IBOutlet weak var timePicker: UIDatePicker!

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

1 个答案:

答案 0 :(得分: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)正确的时区。