2017-06-08 8 views
0

私はサーバーからカスタム形式に日付を解析しています: - これは、日付です: - "8/9/2017 3:58:00 AM"ですが、この形式を使用してDateオブジェクトを解析していません "MM/dd/AndroidのDateFormatが同じ日付を解析するため、自分の知る限り、自動的に解析する必要があります。これは、月、日、時が1桁であることを示しているため、「yyyy hh:mm:ss a」です。 これは私が使用していますコードスニペットです: - あなたはまた、いくつかのエラーチェックを追加する必要がありますが、どのようにios swiftの文字列date-dateオブジェクトを解析するのですか?

func getDateString(_ dateString:String) -> String{ 
    let dateFormatter = DateFormatter() 
    dateFormatter.dateFormat = "M/dd/yyyy hh:mm:ss a" 
    let date = dateFormatter.date(from: dateString) 
    dateFormatter.dateFormat = "dd MMM yyyy" 
    return dateFormatter.string(from: date!) 
} 

この関数は、ヌル

+0

本当ですか?私はあなたのコードを遊び場で試しましたが、それは動作するようです[Attachment with result](https://i.gyazo.com/90bf726098f946898a8fbd9dc500b00f.png) –

答えて

0

あなたのコードは動作するはず戻っています。

これは(それが遊び場で実行されます)試してみてください。

// returns an empty string "" if the date format is invalid 
func getDateString(_ dateString:String) -> String { 

    var strResult = "" 

    let dateFormatter = DateFormatter() 
    dateFormatter.dateFormat = "M/dd/yyyy hh:mm:ss a" 

    if let date = dateFormatter.date(from: dateString) { 
     dateFormatter.dateFormat = "dd MMM yyyy" 
     strResult = dateFormatter.string(from: date) 
    } 

    return strResult 

} 

let dateString = getDateString("8/9/2017 3:58:00 AM") 

print(dateString) // prints "09 Aug 2017" 

あなたは無効な日付/時刻にあなたの「ソース」の文字列を変更した場合 - など3 to 13から8 to 18から月や時間の変更など - 返された値が空の文字列であることがわかります。

関連する問題