2016-07-12 64 views
0

我想轉換UTC日期爲swift中的本地日期,但在得到UTC後字符串中的本地日期我將該字符串轉換爲NSDate中的一次,但我總是得到UTC日期格式下面是我的代碼UTC的日期在swift iOS中的本地日期

日期:在UTC:二零一六年七月二十日18:30:00 +0000

我想這個日期在當地的日期,選中下面的代碼:

let dateInUTC = NSDate() 
     let seconds: Int = NSTimeZone.systemTimeZone().secondsFromGMT 
     print(seconds) 
     let localDateFormatter: NSDateFormatter = NSDateFormatter() 
     localDateFormatter.dateFormat = "MM/dd/yyyy HH:mm" 
     localDateFormatter.timeZone = NSTimeZone(forSecondsFromGMT: seconds) 
     let lastDate: String = localDateFormatter.stringFromDate(dateInUTC) 
     print(lastDate) 

在這個時候我得到「07/12/2016 16:56:36 GMT + 5:30」,意思是我得到的字符串本地日期,但我想這個日期的NSDate所以我再次轉換成NSDate的這串日期,檢查以下

let getDate:NSDate = localDateFormatter.dateFromString(lastDate)! 
    print(getDate) 

但在這個階段,我再次得到了在UTC日期(2016年7月12日11: 26:36 +0000),但我想在本地日期,

  • 我嘗試了很多的雨燕次,但沒有從字符串獲得本地日期,這行代碼我在Objective-C的應用,其工作的罰款obj-c但是當我在swift中嘗試時,我總是得到UTC日期,建議我並給我正確的方式來解決這個問題。
+2

NSDate代表絕對時間點並且沒有時區。這已被反覆詢問和回答。 –

+0

那麼如何獲得當地時區的NSDate? (注意:不是字符串,它應該在NSDate中) –

+0

這個問題沒有意義,NSDate只是自2001年1月1日GMT以來的秒數。看例如http://stackoverflow.com/questions/24917483/swift-nsdate-utc-time-and-local-tme或http://stackoverflow.com/questions/18124684/nsdate-change-time-zone。 NSDate的* description *方法使用UTC將日期顯示爲字符串。 –

回答

1

NSDates不保存時區信息。檢索時,您始終必須使用帶有時區的dateFormatter。