NSDate 格式化程序错误
NSDate Formatter Bug
我有一个 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
吗?
问题不在于 timestampDate
。问题是 releaseDate
是一个 NSDate?
并且您试图将 stringFromDate
的结果放入其中,returns 一个 String
.
如果要将时间戳转换为用户可读的字符串,您可能希望将 releaseDate
声明为 String
。
当您执行 let stringTimeStamp = timestampDate.description
时,description 将 return 一个 String 对象。所以基本上 stringTimeStamp 是一个 String 类型的对象。所以最后当你在做 releaseDateFormatter.stringFromDate(timestampDate)
时,它得到了错误 Cannot assign value of type 'String' to type
。
因为 stringFromDate 实际上将 NSDate 转换为 String。它需要一个 String 作为参数。您可能需要 dateFromString,它将 String 转换为 NSDate 对象。
我有一个 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
吗?
问题不在于 timestampDate
。问题是 releaseDate
是一个 NSDate?
并且您试图将 stringFromDate
的结果放入其中,returns 一个 String
.
如果要将时间戳转换为用户可读的字符串,您可能希望将 releaseDate
声明为 String
。
当您执行 let stringTimeStamp = timestampDate.description
时,description 将 return 一个 String 对象。所以基本上 stringTimeStamp 是一个 String 类型的对象。所以最后当你在做 releaseDateFormatter.stringFromDate(timestampDate)
时,它得到了错误 Cannot assign value of type 'String' to type
。
因为 stringFromDate 实际上将 NSDate 转换为 String。它需要一个 String 作为参数。您可能需要 dateFromString,它将 String 转换为 NSDate 对象。