我有以下代码:
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)
}
在分数视图控制器中,我将其显示为:
cell.textLabel?.text = "Date: \(game.datePlayed)
但是,我只使用Optional("")行获得此行。
如何删除Optional (" ")
以及如何将日期格式化为:
MM/dd/yyyy hh:mm (AM/PM)
?
答案 0 :(得分:2)
要删除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)
您可以更改dateStyle
和timeStyle
以满足您的需求(在.ShortStyle
,.MediumStyle
,.LongStyle
和.FullStyle
之间进行选择
另外,您可以使用如下所示的自定义日期格式化程序:
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd 'at' HH:mm"
let dateString = formatter.stringFromDate(date)