Ios 在“中显示日期”;",&引用;“第&引用;rd";及;";格式

Ios 在“中显示日期”;",&引用;“第&引用;rd";及;";格式,ios,ios7,ios8,nsdateformatter,Ios,Ios7,Ios8,Nsdateformatter,我必须以不同的格式显示日期 例如。 7月21日 我找不到任何东西可以将我的日期转换为这种格式。如果有人知道,请帮助我。您可以使用NSDateFormatter显示您的NSDate。它具有dateStyle和timeStyle等属性,可以轻松更改这些属性以获得所需的格式。如果您需要更大的灵活性,还可以使用dateFormat属性 let formatter = NSDateFormatter() formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:

我必须以不同的格式显示日期

例如。 7月21日


我找不到任何东西可以将我的日期转换为这种格式。如果有人知道,请帮助我。

您可以使用NSDateFormatter显示您的NSDate。它具有dateStyle和timeStyle等属性,可以轻松更改这些属性以获得所需的格式。如果您需要更大的灵活性,还可以使用dateFormat属性

    let formatter = NSDateFormatter()
    formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
    formatter.stringFromDate(NSDate()) 
Swift

extension Date {

    func dateFormatWithSuffix() -> String {
        return "dd'\(self.daySuffix())' MMMM yyyy"
    }

    func daySuffix() -> String {
        let calendar = Calendar.current
        let components = (calendar as NSCalendar).components(.day, from: self)
        let dayOfMonth = components.day
        switch dayOfMonth {
        case 1, 21, 31:
            return "st"
        case 2, 22:
            return "nd"
        case 3, 23:
            return "rd"
        default:
            return "th"
        }
    }
}
示例

let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = date.dateFormatWithSuffix()
print(dateFormatter.string(from: date))
// Output for current date: 22nd May 2019

标签当前将设置为5月25日

此标签的可能副本与语言无关。您可以将
NumberFormatter
一起使用。numberStyle=ordinal
但是有些语言也不希望在日期中使用序数样式。@jowie您是对的!我回答了关于“st”、“nd”、“rd”和“th”的主要问题。对于其他语言,它是复杂的)
    func setCurrentDate() {
        let date = Date()

        // Use this to add st, nd, th, to the day
        let numberFormatter = NumberFormatter()
        numberFormatter.numberStyle = .ordinal
        numberFormatter.locale = Locale.current

        //Set other sections as preferred
        let monthFormatter = DateFormatter()
        monthFormatter.dateFormat = "MMM"

        // Works well for adding suffix
        let dayFormatter = DateFormatter()
        dayFormatter.dateFormat = "dd"

        let dayString = dayFormatter.string(from: date)
        let monthString = monthFormatter.string(from: date)

        // Add the suffix to the day
        let dayNumber = NSNumber(value: Int(dayString)!)
        let day = numberFormatter.string(from: dayNumber)!

        yourDateLabel.text = "\(day) \(monthString)"
}