2016-05-31 3 views
0

私はUIDatePickerを持っていますが、これは時間だけに制限されています。そして、この時間に達するとすぐにlocalNotificationが発生します。しかし、私はそれが常に間違ったタイムゾーンに消灯する必要があります時間を印刷する場合。NSDateからタイムゾーンを変換

ローカル通知機能に渡す前に、タイムゾーンをユーザーのローカルタイムゾーンに変換します。

(1)、そして(2)日付のタイムゾーンを変更するには日付フォーマッタを使用して、私はこのコードでそれを試してみましたが、それは明らかに

@IBOutlet weak var timePicker: UIDatePicker! 

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

約100万件の質問があります。 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 

を動作しません。これは、現在のユーザーのタイムゾーンを使用しています(3)日付を文字列に変換してから、正しいタイムゾーンを使用して日付に戻します。

+0

ありがとうございます! – R3ptor

関連する問題