Почему format.dateFormat не может быть назначен как String? - PullRequest
0 голосов
/ 10 октября 2019

Я хочу получить текущую дату / время в каком-то определенном формате.

Например, этот формат правильный:

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)
}

"гггг-мм-дд чч: мм: сс" - это не строка? В этом контексте:

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

Какой здесь должен быть формат?

1 Ответ

1 голос
/ 10 октября 2019

Вы только что допустили небольшую ошибку в своем коде. Вы назвали свой параметр 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)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...