Подтвердить что ты не робот

Как преобразовать строку в дату в строку в 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)")

Кто-нибудь может помочь, если я ошибаюсь? Посмотрите вперед помощь. Заранее спасибо.

4b9b3361

Ответ 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)")