Я расширю ответ в комментарии с некоторыми примерами.Для iOS 7 и более поздних версий коды форматов здесь: http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns. Таблица слишком велика, чтобы скопировать все это здесь, но вот несколько, которые помогли мне начать.См. Эту ссылку для всех форматов и объяснений.
- эра: G (AD), GGGG (Anno Domini)
- год: у (1984), уу (84),гггг (1984)
- месяц: М, ММ, МММ, ММММ, МММММ.Также: L
- день месяца: d, dd
- название дня недели: E, EEEE, EEEEE, EEEEEE
Вот фрагмент игровой площадки, который я нашелполезно изучить их.
let components = DateComponents(
calendar: Calendar(identifier: .gregorian),
timeZone: nil,
era: 1,
year: 1984,
month: 1,
day: 2,
hour: nil, minute: nil, second: nil,
nanosecond: nil, weekday: nil,
weekdayOrdinal: nil, quarter: nil,
weekOfMonth: nil, weekOfYear: nil,
yearForWeekOfYear: nil)
let aDate = Calendar(identifier: .gregorian).date(from: components)!
let en_US = Locale(identifier: "en_US")
var df = DateFormatter()
func formatdate(_ template: String) -> String {
let custom = DateFormatter.dateFormat(fromTemplate: template, options: 0, locale: en_US)
df.dateFormat = custom
return df.string(from: aDate)
}
formatdate("MdYYYY") // "1/2/1984"
formatdate("YYYYMMdd") // "01/02/1984"
formatdate("YYYYMMMdd") // "Jan 02, 1984"
formatdate("YYYYMMMMdd") // "January 02, 1984"
formatdate("YYYYMMMMMdd") // "J 02, 1984"
formatdate("YYYYG") // "1984 AD"
formatdate("YYYYGGGG") // "1984 Anno Domini"
formatdate("YYYYMMMddE") // "Mon, Jan 02, 1984"
formatdate("YYYYMMMddEEEE") // "Monday, Jan 02, 1984"
formatdate("YYYYMMMddEEEEE") // "M, Jan 02, 1984"