如何在 Swift 中使用 dateformatter 将 daySuffix 添加到日期

How to add daySuffix to day using dateformatter in Swift

我正在使用以下代码获取 daySuffix

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

我正在使用 DateFormatter 在标签中显示 JSON 日期,如下所示。在这段代码中,由于 dateFormatter.dateFormat = "dd'th' MMMM, yyyy" 这行所有后缀,我只得到 th 如何使用 daySuffix 方法,请有人指导我

let fromDateString = enquiryData.from_date//vale from JSON

var fromDate: String?

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"

let date1 = dateFormatter.date(from: fromDateString!)
if let date1 = date1 {

dateFormatter.dateFormat = "dd'th' MMMM, yyyy"
fromDate = dateFormatter.string(from: date1)

dateLbl.text = fromDate ?? ""
}

// prints exact day suffix
let testDate = daySuffix(from: date1!)
print("daySuffix value \(testDate)")// this prints exact suffix

这里如果我打印 let testDate = daySuffix(from: date1!) print("daySuffix value \(testDate)") 打印确切的后缀但是我如何添加后缀到日期

使用日期格式化程序时,'' 中的所有字符都将被忽略并保持未格式化。所以你只需要做

dateFormatter.dateFormat = "dd'\(daySuffix(from: date1))' MMMM, yyyy"

或者这对你不起作用?