2016-05-31 15 views
2

こんにちは、私は鍬にこのような日付形式をつけることができます: 2007年6月13日。私は自分のフォーマットでそれを追加したい。ありがとう!複数の参照用普通の日付の形式 "Swiftの2007年6月13日"

+0

これはありませんか? – Jessedc

+0

疎結合(同じ質問ではない):http://stackoverflow.com/questions/31686225/date-time-natural-language-approximation-in-swift?rq=1 – Thilo

+0

これは一般的な形式ではない。順序付き接尾辞( 'th ')は読み込まれますが、通常は書き込まれません。標準フォーマットは「2007年6月13日」または「2007年6月13日」です。通常は、これを決めるシステムのフォーマットパターンを使用したいと考えています。 – Sulthan

答えて

-1

:普通日付ギスイフト3.0 ordinary date

機能:

func convertDateFormate(date : Date) -> String{ 
    // Day 
    let calendar = Calendar.current 
    let anchorComponents = calendar.dateComponents([.day, .month, .year], from: date) 

    // Formate 
    let dateFormate = DateFormatter() 
    dateFormate.dateFormat = "MMM, yyyy" 
    let newDate = dateFormate.string(from: date) 

    var day = "\(anchorComponents.day!)" 
    switch (day) { 
    case "1" , "21" , "31": 
     day.append("st") 
    case "2" , "22": 
     day.append("nd") 
    case "3" ,"23": 
     day.append("rd") 
    default: 
     day.append("th") 
    } 
    return day + " " + newDate 
} 

通常の関数の出力:

2016年12月11日

2016年12月30日

12月31日、

+0

私にとっては、これは2つの問題を示す「16th Mai、2016」です。今年の最後の2桁を日(明らかに間違っています)としています。英語以外のロケールでは動作しません。 –

+0

客観的なコードを持っていますか? – macky12345

+1

@ macky12345:なぜObjective-Cソリューションを探しているのですか? –

8

2016はあなたがロケール安全である。このような何かを行うことができスウィフト3

のために更新しました。

let calendar = Calendar.current 
let date = Date() 
let dateComponents = calendar.component(.day, from: date) 
let numberFormatter = NumberFormatter() 

numberFormatter.numberStyle = .ordinal 

let day = numberFormatter.string(from: dateComponents as NSNumber) 
let dateFormatter = DateFormatter() 

dateFormatter.dateFormat = "MMM yyyy" 

let dateString = "\(day!) \(dateFormatter.string(from: date))" 

print(dateString) 
関連する問題