Как преобразовать строку в дату в строку в Swift iOS?
Изучение быстро и поражает преобразование даты String в NSDate в строку. Я получаю строку даты в этом формате "Thu, 22 Oct 2015 07:45:17 +0000". Мне нужно показать дату в формате MM-dd-yyyy. Я попробовал следующий код, но он возвращает "null".
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle
let dateObj = dateFormatter.dateFromString(dateString!)
print("Dateobj: \(dateObj)")
Кто-нибудь может помочь, если я ошибаюсь? Посмотрите вперед помощь. Заранее спасибо.
Ответы
Ответ 1
Во-первых, вам нужно конвертировать вашу строку в NSDate с ее форматом. Затем вы изменяете dateFormatter
на ваш простой формат и конвертируете его обратно в строку.
Свифт 3
let dateString = "Thu, 22 Oct 2015 07:45:17 +0000"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEE, dd MMM yyyy hh:mm:ss +zzzz"
dateFormatter.locale = Locale.init(identifier: "en_GB")
let dateObj = dateFormatter.date(from: dateString)
dateFormatter.dateFormat = "MM-dd-yyyy"
print("Dateobj: \(dateFormatter.string(from: dateObj!))")
Результат печати: Dateobj: 10-22-2015
Ответ 2
//String to Date Convert
var dateString = "2014-01-12"
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let s = dateFormatter.dateFromString(dateString)
println(s)
//CONVERT FROM NSDate to String
let date = NSDate()
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
var dateString = dateFormatter.stringFromDate(date)
println(dateString)
Ответ 3
Свифт 2 и ниже
let date = NSDate()
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
var dateString = dateFormatter.stringFromDate(date)
println(dateString)
И в Swift 3 и выше это будет теперь записано как:
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
var dateString = dateFormatter.string(from: date)
Ответ 4
См. ответ от Гэри Макина. И вам нужно изменить формат или данные. Потому что данные, которые у вас есть, не соответствуют выбранному формату. Например, этот код работает правильно:
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
let dateObj = dateFormatter.dateFromString("10 10 2001")
print("Dateobj: \(dateObj)")