2016-07-28 83 views
0

我有我試圖用NSDateFormatter()轉換Unix時間戳,但是當我試圖通過我的NSDate變量,我得到一個錯誤:Cannot assign value of type 'String' to type 'NSDate?'的NSDate格式化錯誤

var releaseDate: NSDate? 

override func viewDidAppear(animated: Bool) { 
    super.viewDidAppear(animated) 

    let seconds = Double(self.userA.releaseDate) 

    let timestampDate = NSDate(timeIntervalSince1970: seconds) 

    let stringTimeStamp = timestampDate.description 

    print(stringTimeStamp) // 2016-07-29 04:49:54 +0000 

    let releaseDateFormatter = NSDateFormatter() 
    releaseDateFormatter.dateFormat = "hh:mm:ss a" 
    releaseDate = releaseDateFormatter.stringFromDate(timestampDate) 
} 

我很困惑,因爲沒」我明確宣佈timestampDateNSDate

+0

stringFromDate實際上將Date轉換爲String。你可能需要dateFromString,它會從String對象中返回一個Date對象。 – Shad

回答

0

問題不在timestampDate。問題是,releaseDateNSDate?,並且您試圖將stringFromDate的結果返回給它,它返回String

如果要將時間戳轉換爲用戶可讀的字符串,則可能需要聲明releaseDateString

0

當你正在做的let stringTimeStamp = timestampDate.description描述返回一個字符串對象。所以基本上stringTimeStamp是一個String類型的對象。所以最後當你在做releaseDateFormatter.stringFromDate(timestampDate)它得到錯誤Cannot assign value of type 'String' to type

因爲stringFromDate實際轉化一個的NSDate字符串。它期望字符串作爲參數。您可能需要dateFromString,它會將字符串轉換爲NSDate對象。