如何将 24 小时时间格式转换为 12 小时时间格式?

How can I convert the 24 hour time format to 12 hour time format?

我可以得到 24 小时制的时间,但是如何得到 am 和 pm 的 12 小时格式?

let date = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components([.Hour, .Minute, .Second], fromDate: date)
let hour = components.hour
let minutes = components.minute

正如您所说,您应该使用 NSDateFormatter 作为您想要的格式。希望对您有所帮助。

let date = NSDate()
let formatter = NSDateFormatter()
formatter.dateFormat = "hh:mm a"
let time = formatter.stringFromDate(date)

有关日期格式化程序的详细信息,请参阅 NSDateFormatter

Swift 3.1 回答

 let date = Date()                //Jun 1, 2017, 10:22 AM"
 let formatter = DateFormatter()  //<NSDateFormatter: 0x608000244380>
 formatter.dateFormat = "hh:mm a" //<NSDateFormatter: 0x608000244380>
 let time = formatter.string(from: date) //"10:22 AM"

时间格式必须是 'hh' 而不是 HH

formatter.dateFormat = "hh:mm a"
   let str=dict["startDateTime"] as! String //if the date is in the array
   let str="16:00" //if you want to use static date
    let index=str.index(str.startIndex, offsetBy: 11)
    let end_index=str.index(str.endIndex, offsetBy:-3)
    let dateAsString = str[index ..< end_index]
    let dateFormatter=DateFormatter()
    dateFormatter.dateFormat="HH:mm"

    let date = dateFormatter.date(from: String(dateAsString))
    dateFormatter.dateFormat = "h:mm a"
    let Date12 = dateFormatter.string(from: date!)
    print(Date12)