iOS Swift converting calendar component int month to medium style string month

后端 未结 5 2091
后悔当初
后悔当初 2020-12-09 16:25

I want to display calendar in this format

\"visible

to the user. One option is to

5条回答
  •  庸人自扰
    2020-12-09 16:53

    You can use DateFormatter as follow:

    extension Formatter {
        static let monthMedium: DateFormatter = {
            let formatter = DateFormatter()
            formatter.dateFormat = "LLL"
            return formatter
        }()
        static let hour12: DateFormatter = {
            let formatter = DateFormatter()
            formatter.dateFormat = "h"
            return formatter
        }()
        static let minute0x: DateFormatter = {
            let formatter = DateFormatter()
            formatter.dateFormat = "mm"
            return formatter
        }()
        static let amPM: DateFormatter = {
            let formatter = DateFormatter()
            formatter.dateFormat = "a"
            return formatter
        }()
    }
    extension Date {
        var monthMedium: String  { return Formatter.monthMedium.string(from: self) }
        var hour12:  String      { return Formatter.hour12.string(from: self) }
        var minute0x: String     { return Formatter.minute0x.string(from: self) }
        var amPM: String         { return Formatter.amPM.string(from: self) }
    }
    

    let date = Date()
    
    let dateMonth  = date.monthMedium  // "May"
    let dateHour   = date.hour12       // "1"
    let dateMinute = date.minute0x     // "18"
    let dateAmPm = date.amPM           // "PM"
    

提交回复
热议问题