2015-10-15 78 views
1

我嘗試轉換日期和時間字符串斯威夫特NSDate的,但問題是時間的轉化率不完美,連我正確設置我的時區,這裏是我的代碼:迅速 - 轉換字符串的NSDate

var dateStr = "2015-10-16 08:00 AM" 
    var dateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = "yyyy-MM-dd hh:mm a" 
    dateFormatter.timeZone = NSTimeZone(forSecondsFromGMT: 28800) 
    var date = dateFormatter.dateFromString(dateStr) 
    print(date!) 

它打印出這樣的結果:2015-10-16 00:00:00 +0000你認爲這是什麼問題?謝謝!

回答

4

這裏沒有錯。在打印之前,您應該將date轉換爲String

let dateStr = "2015-10-16 08:00 AM" 
    let dateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = "yyyy-MM-dd hh:mm a" 
    dateFormatter.timeZone = NSTimeZone(forSecondsFromGMT: 28800) 
    let date = dateFormatter.dateFromString(dateStr) 
    print(dateFormatter.stringFromDate(date!)) 

或如在夫特3

let dateStr = "2015-10-16 08:00 AM" 
    let dateFormatter = DateFormatter() 
    dateFormatter.dateFormat = "yyyy-MM-dd hh:mm a" 
    dateFormatter.timeZone = TimeZone(secondsFromGMT: 28800) 
    let date = dateFormatter.date(from: dateString) 
    print(dateFormatter.string(from: date)) 

相同的結果:2015-10-16 08:00 AM