Как добавить th и st в формат даты - PullRequest
0 голосов
/ 02 июня 2018

Я хочу преобразовать дату как "Пятница 17, 19:00" в этот формат.но я не могу добавить "th" и "st" после даты.Я использую код ниже, чтобы преобразовать формат даты, как это.скажи пожалуйста.Что я делаю для этого формата?

 func convertDateFormater(_ date: String) -> String
    {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"//this your string date format
        dateFormatter.timeZone = NSTimeZone(name: "UTC") as TimeZone?
        //dateFormatter.locale = Locale(identifier: "your_loc_id")
        let convertedDate = dateFormatter.date(from: date)
        guard dateFormatter.date(from: date) != nil else {
            assert(false, "no date from string")
            return ""
        }
        dateFormatter.dateFormat = "EEEE dd, h:mma"///this is what you want to convert format
        dateFormatter.timeZone = NSTimeZone(name: "UTC") as TimeZone?
        let timeStamp = dateFormatter.string(from: convertedDate!)

        return timeStamp
    }

1 Ответ

0 голосов
/ 02 июня 2018

Пока разные локали не играют никакой роли, вы можете сделать что-то вроде этого:

let date = Date()

let calendar = Calendar.current

let day = calendar.component(.day, from: date)
let daySuffix: String

switch day {
case 11...13: return "th"
default:
    switch day % 10 {
    case 1: return "st"
    case 2: return "nd"
    case 3: return "rd"
    default: return "th"
    }
}

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEEE dd'\(daySuffix)', h:mma"

dateFormatter.string(from: date)
...