swift NSDate AM和Pm格式

时间:2017-03-02 11:14:39

标签: ios swift date nsdateformatter

为了转换日期和时间,我使用了这个:

 let formatter = NSDateFormatter()
 formatter.calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierISO8601)
 formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
 formatter.timeZone = NSTimeZone(forSecondsFromGMT: 0)
 formatter.dateFormat = "M/dd/yyyy, h:mm"
 formatter.AMSymbol = "AM"
 formatter.PMSymbol = "PM"
 let dateString = formatter.stringFromDate(model.courseDate)
 print(dateString)

如果课程日期" courseDate =" 2017-01-09 01:00:00 + 0000";"  但我在印刷中得到这样的结论: 1/09/2017,1:00 ,没有任何AM或PM。

我怎样才能做到这一点?

感谢。

3 个答案:

答案 0 :(得分:12)

根据日期格式化程序规范

您可以使用24小时格式检索日期,而不是请求AM / PM HH而不是......

所以日期“21/11/2016 01:30”(下午)将是“21/11/2016 13:30”。

如果您确实需要打印格式,可以使用以下方式打印:

More date fomatting details here

答案 1 :(得分:8)

根据Apple通用日期格式化程序,您应该在日期格式中使用“M / dd / yyyy,hh:mm a”。

喜欢: formatter.dateFormat = "M/dd/yyyy, hh:mm a"

希望这会对你有帮助!

答案 2 :(得分:1)

使用以下代码可能对您有所帮助

//调用函数

let dateTime = self.convertDateFormaterAamer(sendTimeStep, inputDateFormate: "dd-MM-yyyy HH:mm:ss", outputDateFormate: "dd-MMM-yyyy hh:mm a")

//日期函数

func convertDateFormater(date: String,inputDateFormate: String , outputDateFormate: String) -> String
{
    let dateFormatter = NSDateFormatter()
    //dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
    //dateFormatter.timeZone = NSTimeZone(name: "UTC")
    dateFormatter.dateFormat = inputDateFormate


    let date = dateFormatter.dateFromString(date)

    //dateFormatter.dateFormat = "yyyy MMM EEEE HH:mm"
    //dateFormatter.timeZone = NSTimeZone(name: "UTC")
    dateFormatter.dateFormat = outputDateFormate
    var timeStamp = ""
    if (date != nil)
    {
        timeStamp = dateFormatter.stringFromDate(date!)
    }
    return timeStamp
}