如何将解析日期对象转换为字符串?

时间:2014-12-13 09:30:45

标签: ios swift parse-platform

初学者警报

我试图从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"是由解析云设置的日期,而不是字符串。

1 个答案:

答案 0 :(得分:3)

如果您的lastActive单元格返回您可以使用的日期:

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.SSS'Z'"
let date = dateFormatter.stringFromDate(lastActive as NSDate)

您不必将日期转换为字符串,您将通过dateformatter创建日期字符串。 但是,如果您这样做,可以使用lastActive as! String

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)
            }
        }

我尝试使用上面的代码,如果您已将列设置为解析日期,则应该可以正常工作。