如何在 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(" ") 行的这一行。
如何删除 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)
您可以更改 dateStyle
和 timeStyle
以满足您的需要(选择:.ShortStyle
、.MediumStyle
、.LongStyle
和 .FullStyle
)
此外,您可以使用如下所示的自定义日期格式化程序:
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd 'at' HH:mm"
let dateString = formatter.stringFromDate(date)
我有以下代码:
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(" ") 行的这一行。
如何删除 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)
您可以更改 dateStyle
和 timeStyle
以满足您的需要(选择:.ShortStyle
、.MediumStyle
、.LongStyle
和 .FullStyle
)
此外,您可以使用如下所示的自定义日期格式化程序:
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd 'at' HH:mm"
let dateString = formatter.stringFromDate(date)