2017-03-02 5 views
3

日付と時刻を変換するには、私はこれを使用している:もちろん日は「courseDate = 『2017年1月9日1時00分00秒0000』である場合迅速NSDate AMとPMフォーマット

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) 

を; " 私はこのように印刷されています: 1/09/2017、1:00、午前も午後もありません。

どうすればこの問題を解決できますか?

ありがとうございました。

+0

この 'M/DD/YYYY、H試してみてください:ミリメートルA'を、そしてあなたは、' AMSymbol/PMSymbol' –

+0

formatter.dateFormatを試してみてください=「M/DD/YYYY、時間を設定する必要はありません。ミリメートル" –

+0

これはSwift 3のDateFormatterです。 –

答えて

3

Appleの一般的な日付フォーマッタでは、日付形式で "M/dd/yyyy、hh:mm a"を使用する必要があります。

のような:これはあなたを助けるformatter.dateFormat = "M/dd/yyyy, hh:mm a"

願っています!

8

日付フォーマッタスペック

に応じてあなたは HHの代わりに、その日「11分の21

HHを使用して24時間形式ではなく、AM/PMを要求した日付を取得することができます/ 2016 01:30 "(pm)は" 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 
}