我有以下代码:
让 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("") 行得到这一行。
如何删除可选 ("")
以及如何将日期格式设置为:
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)
您可以更改 dateStyle
和 timeStyle
以满足您的需求(选择:.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/