[英]Converting date from string with dateformatter for tableView's titleForHeader but getting nil error
我從collectionView日歷中選擇了一個日期,希望將其格式化為日期,並設置為同一View Controller中tableView的標題。 但是,嘗試格式化它並將其設置為標題時,出現錯誤。
這是我的錯誤代碼:
var selectedDate = Date!
let formatter: DateFormatter = {
let dateFormatter = DateFormatter()
dateFormatter.timeZone = Calendar.current.timeZone
dateFormatter.locale = Calendar.current.locale
dateFormatter.dateFormat = "yyyy MM dd"
return dateFormatter } ()
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss +zzzz"
let dateForTableViewHeader = formatter.string(from: selectedDate) // Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
return dateForTableViewHeader
}
對於錯誤,我的控制台將打印:selectedDate日期? 無
如果我將其全部更改為僅此行
return "\(String(describing: selectedDate))"
然后打印所選日期作為標題標題:可選(2018-09-25 07:00:00 +0000)
我想將其轉換為日期格式,如2018年9月25日。如果它直接打印selectedDate的值,為什么當我嘗試將其轉換為其他日期格式時卻出現nil錯誤?
import Foundation
var selectedDate = Date()
let formatter: DateFormatter = {
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .full
dateFormatter.timeZone = Calendar.current.timeZone
dateFormatter.locale = Calendar.current.locale
return dateFormatter
} ()
func printDate() -> String{
print("selected date \(selectedDate)")
formatter.dateFormat = "yyyy-MM-dd"
let newDate = formatter.string(from: selectedDate)
return newDate
}
printDate()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.