新手提醒
我正在尝试从 PFUser 查询日期,然后将其格式化为 NSDate,以便它更有用。当我尝试将对象转换为 NSString 以便我可以使用 NSDateFormatter() 格式化它时,问题就开始了
var user = PFUser.query()
user.whereKey("username", equalTo: PFUser.currentUser().username)
user.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
if error == nil {
for object in objects {
var lastActive = object["lastActive"]
if lastActive != nil {
let newLastActive = lastActive as String //problem starts here!!
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.SSS'Z'"
let date = dateFormatter.dateFromString(newLastActive)
println("new date \(date)")
}
}
}
}
正确的做法是什么?此外,如果我没有将变量类型指定为 AnyObject,它就会一直作为可选类型出现。如何在将其转换为 String 时去掉可选的?
编辑:对象“lastActive”是解析云设置的日期,不是字符串。
最佳答案
如果您的 lastActive 单元格返回一个日期,您可以使用:
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.SSS'Z'"
let date = dateFormatter.stringFromDate(lastActive as NSDate)
您不必将日期转换为字符串,您将通过日期格式化程序创建一个日期字符串。
但是如果你这样做,你可以使用 lastActive 作为! String
insted of lastActive as String
已更新
for object in objects {
var lastActive = object["lastActive"]
if lastActive != nil {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.SSS'Z'"
let date = dateFormatter.stringFromDate(lastActive as NSDate)
println(date)
}
}
我尝试使用上面的这段代码,如果您已将列解析设置为最新,它应该可以工作。
关于ios - 如何将解析日期对象转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27457411/