【问题标题】:How to convert a parse date object to a string?如何将解析日期对象转换为字符串?
【发布时间】:2014-12-13 09:30:44
【问题描述】:

初学者提醒

我正在尝试从 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,它会一直作为可选变量出现。将其转换为字符串时如何摆脱可选?

编辑:对象“lastActive”是解析云设置的日期,而不是字符串。

【问题讨论】:

  • 解析中的 lastActive 字段是存储日期还是字符串?
  • 它像“createdAt”一样存储一个日期

标签: ios swift parse-platform


【解决方案1】:

如果您的 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 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)
            }
        }

我尝试使用上面的这段代码,如果您已将列设置为 parse to date,它应该可以工作。

【讨论】:

  • xcode 错误出现为“无法转换 'AnyObject?!'在 dateFormatter.stringFromDate(newlastActive) 的行上键入 '$T3' :(
  • 我出错了,你应该使用stringFromDate中的lastActive,因为它将日期存储为日期
  • 仍然出现同样的错误。这是因为查询返回的对象都是我相信的“AnyObjects”。
  • 我根据它更新了我的代码。所以它将日期转换为 NSDate
  • 错误现在是:NSDate 不是 NSString 的子类型。感谢您尝试
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-21
  • 2020-11-30
  • 2022-01-11
  • 1970-01-01
相关资源
最近更新 更多