Как я могу отформатировать дату

Я получаю дату в формате как 2015-07-15 17:12:00 +0000, но я хочу отобразить его как 15 июля 2015 года.

Как я могу это сделать?

Код:

func formatDate(date: String) -> String {

    if date != "" {
        var dateString = date
        dateString = dateString.substringToIndex(advance(minElement(indices(dateString)), 19))
       dateString = dateString.stringByReplacingOccurrencesOfString("", withString: " ")
        var dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss"
        var dateStr = dateFormatter.dateFromString(dateString)
        dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle
        var date = dateFormatter.stringFromDate(dateStr!)
        return date
    }
    else {
        return ""
    }


}

3 ответа

Решение

Ваша входная строка dateFormatter немного отклонена - она ​​не включает часовой пояс и использует неправильный шаблон часов. Следующие работы и, наконец, выходы

15 июля 2015

let dateStr = "2015-07-15 17:12:00 +0000"
var dateFormatterIn = NSDateFormatter()
dateFormatterIn.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ"
let date = dateFormatterIn.dateFromString(dateStr)

let dateFormatterOut = NSDateFormatter()
dateFormatterOut.dateFormat = "MMM dd yyyy"
print(dateFormatterOut.stringFromDate(date!))

Для правильной строки даты взгляните на документацию Unicode

Ваше первоначальное преобразование из строки в дату не удалось. Попробуй это:

func formatDate(dateString: String) -> String {
    let formatter = NSDateFormatter()
    formatter.dateFormat = "yyyy-MM-dd HH:mm:ss zzzz"

    if let date = formatter.dateFromString(dateString) {
        formatter.dateStyle = .MediumStyle
        return formatter.stringFromDate(date)
    } else {
        return "Invalid dateString"
    }
}

println(formatDate("2015-07-15 17:12:00 +0000"))

NSDateformatter преобразует сначала SQL-подобную строку даты в NSDate, а затем обратно в строку с определенным форматом

func formatDate(dateString: String) -> String {

  if !dateString.isEmpty {
    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ"
    if let date = dateFormatter.dateFromString(dateString) {
      dateFormatter.dateFormat = "MMM dd yyyy"
      return dateFormatter.stringFromDate(date)
    }
  }
  return ""
}

formatDate("2015-07-15 17:12:00 +0000") // Jul 15 2015
Другие вопросы по тегам