2017-11-24 12 views
-5

"25-12-1994"から "25-Dec-1994"に日付を変換したいと思います。しかし、結果は以下は、この日付文字列の変換が間違っている月

enter image description here

のように出てくるデバッグ中に私のコードです:

let dateStr = "25-12-1994" 
let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = "dd-mm-yyyy" 
let date = dateFormatter.date(from:dateStr) 
dateFormatter.dateFormat = "dd-MMM-yyyy" 
let actualDate = dateFormatter.string(from: date!) 
+3

'dd-mm-yyyy'対' dd-MM-yyyy'です。 「mm」対「MM」。違いを知るには、ドキュメント:http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patternsを参照してください。 – Larme

+0

@Larme MMMでないMMMを表示したい –

+2

あなたは理解する必要があります。「M」(大文字)は月です。 'm'(小文字)は分です。出現/繰り返しの回数は何を表示するか(すべての文字、数字、先行ゼロのある数字など)を決定しますが、データを月または分として解釈します。しかし、あなたの最初のフォーマッタでは、月を分として読むように設定します。だから、1月が書いている(デフォルトは1に設定されている)。最初のフォーマッタでは、 'dd-mm-yyyy'ではなく' dd-MM-yyyy'と書く必要があります。 – Larme

答えて

0

あなたは法の下に使用してください必要があるとして。それはあなたに適切な月式成績を与えるでしょう

func monthFormatechange(_ dateString : String) -> String 
{ 

    let dateFormatter = DateFormatter() 
    dateFormatter.dateFormat = "dd-MM-yyyy" 
    let date = dateFormatter.date(from:dateString) 
    dateFormatter.dateFormat = "dd-MMM-yyyy" 
    let actualDate = dateFormatter.string(from: date!) 
    return actualDate 
} 
関連する問題