2017-03-02 33 views
3

要转换的日期和时间,我已经使用这个:迅速的NSDate上午和下午格式

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年1月9日01:00:00 +0000’ ;” 但我越来越喜欢这个在打印: 2017年1月9日,1:00没有任何上午或下午。

我该如何做到这一点?

谢谢。

+0

试试这个'M/DD/YYYY,H:MM了',你不需要设置'AMSymbol/PMSymbol' –

+0

尝试formatter.dateFormat =“M/DD/YYYY,H:毫米一个” –

+0

它是DateFormatter与斯威夫特3. –

回答

3

按照苹果一般的日期格式,你应该使用“M/DD/YYYY,HH:MM是”在你的日期格式。

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

希望这将帮助你!

8

根据日期格式规范

您可以通过使用替代HH

所以日期“21/11 HH检索24小时格式,而不是要求AM/PM日期/ 2016 01:30" (时)将是 “21/11/2016 13:30”。

如果确实需要打印的格式,不过,你可以打印使用:

一个

More date fomatting details here

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 
}