为什么无法将format.dateFormat分配为字符串?

时间:2019-10-10 10:04:17

标签: swift date datetime format dateformatter

我想以某种特定格式获取当前日期/时间。

例如,此格式正确:

let date = Date()
let format = DateFormatter()
format.dateFormat = "yyyy-MM-dd HH:mm:ss"
let formattedDate = format.string(from: date)

但是,当我尝试这样做时,出现错误:

func getCurrentDateTime(format: String = "yyyy-MM-dd HH:mm:ss") -> String {
    let date = Date()
    let format = DateFormatter()
    format.dateFormat = format       // Error: Cannot assign value of type 'DateFormatter' to type 'String?'
    return format.string(from: date)
}

“ yyyy-MM-dd HH:mm:ss”-不是字符串吗?在这种情况下:

format.dateFormat = "yyyy-MM-dd HH:mm:ss"

这里的格式是什么?

1 个答案:

答案 0 :(得分:1)

您刚刚在代码中犯了一个小错误。您已经将参数命名为format,但是在代码中使用了名为format的变量。

只需将参数名称更改为其他名称(例如formatString),它将起作用:

func getCurrentDateTime(formatString: String = "yyyy-MM-dd HH:mm:ss") -> String {
    let date = Date()
    let format = DateFormatter()
    format.dateFormat = formatString
    return format.string(from: date)
}