我有一个Unix时间戳,我尝试使用NSDateFormatter()
进行转换,但是当我尝试传递NSDate
变量时,出现错误:Cannot assign value of type 'String' to type '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)
}
我很困惑,因为我没有明确表示timestampDate
为NSDate
?
答案 0 :(得分:0)
问题不在于timestampDate
。问题是releaseDate
是NSDate?
,您试图将stringFromDate
的结果放入其中,返回String
。
如果您想将时间戳转换为用户可读的字符串,您可能希望将releaseDate
声明为String
。
答案 1 :(得分:0)
当您执行let stringTimeStamp = timestampDate.description
时,说明将返回字符串对象。所以基本上 stringTimeStamp 是String类型的对象。所以,当你正在进行releaseDateFormatter.stringFromDate(timestampDate)
时,它会收到错误Cannot assign value of type 'String' to type
。
因为 stringFromDate 实际上将 NSDate 转换为字符串。它期望 String 作为参数。您可能需要 dateFromString ,这会将字符串转换为 NSDate 对象。