2016-07-28 63 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对象。