ios - 如何在 Swift 中删除可选 ("") 并格式化日期

标签 ios swift nsdate

我有以下代码:

让 dateToday = NSDate()

我通过函数将其“传递”到乐谱 View Controller :

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

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

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

但是,我只能通过Optional("") 行得到这一行。

pls check my screenshot

如何删除可选 ("") 以及如何将日期格式设置为: MM/dd/yyyy hh:mm(上午/下午)

最佳答案

要删除 Optionnal("") 指示,您可以使用条件绑定(bind),如下所示:

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)

关于ios - 如何在 Swift 中删除可选 ("") 并格式化日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35451350/

相关文章:

iOS 通讯录导入崩溃异常类型 : EXC_BAD_ACCESS (SIGSEGV)

ios - 如何在不提供任何 Controller 的情况下激活相机?

ios - 将 NSString 转换为 NSDate,添加时间

ios - 在 Xcode 中生成一页以上的 PDF 文件

ios - 如何以编程方式获取应用组名称?

iPhone master detail app如何使用detail view更改master view中对应单元格显示的文本值

colors - 更改 SCNText 节点对象的颜色或纹理(Swift - Scenekit)

ios - 无法在 Swift 中生成多页 PDF

swift - 如何提取自 Swift 中某个日期以来的年数、月数和天数

objective-c - 来自 NSDate 的 NSNumber