2016-05-31 46 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