如何在 Swift 中删除 Optional(" ") 和格式化日期

How to remove Optional(" ") and format date in Swift

我有以下代码:

let dateToday = NSDate()

我通过一个函数将它“传递”给分数视图控制器:

func saveScore(){

    let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    let gameResult = NSEntityDescription.insertNewObjectForEntityForName("SaveGame", inManagedObjectContext: appDelegate.managedObjectContext) as! SaveGame

    gameResult.datePlayed = dateToday
    // other data goes here

self.performSegueWithIdentifier(“scoreSegue", sender: self)
}

在 Score View Controller 中,我将其显示为:

cell.textLabel?.text = "Date: \(game.datePlayed)

但是,我只得到带有 Optional(" ") 行的这一行。

pls check my screenshot

如何删除 Optional (" ") 以及如何将日期格式化为: MM/dd/yyyy hh:mm (AM/PM)?

要删除 Optionnal("") 指示,您可以像这样使用条件绑定:

if let date = game.datePlayed {
    cell.textLabel?.text = "Date: \(date)"
} else {
    //Here display something if no date is available
}

您也可以使用 game.datePlayed! 强制展开您的变量,但我建议不要这样做

要将您的日期格式化为可读的格式,请像这样使用 NSDateFormatter

let formatter = NSDateFormatter()
formatter.dateStyle = NSDateFormatterStyle.LongStyle
formatter.timeStyle = .MediumStyle

let dateString = formatter.stringFromDate(date)

您可以更改 dateStyletimeStyle 以满足您的需要(选择:.ShortStyle.MediumStyle.LongStyle.FullStyle)

此外,您可以使用如下所示的自定义日期格式化程序:

let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd 'at' HH:mm"

let dateString = formatter.stringFromDate(date)