2016-09-01 7 views
0

dateFormat文字列を自動的に(明示的に設定することなく)取得する方法はありますか?NSDateFormatterは自動的にdateFormatを取得します(Swift 2)

 ///getting the date from datePicker 
    func handleDatePicker(sender: UIDatePicker) { 
     let timeFormatter = NSDateFormatter() 
     timeFormatter.locale = NSLocale.currentLocale() 
     timeFormatter.dateStyle = .MediumStyle 
     timeFormatter.dateFormat = "dd MMM yyyy" ///get this automatically??? 
     dateTextField.text = timeFormatter.stringFromDate(sender.date) 
    } 



     [...]///other stuff 
      let dateString = dateTextField.text 
      let dateFormatter = NSDateFormatter() 
      dateFormatter.dateFormat = "dd MMM yyyy" //can I get the string automatically based on user locale??? so I don't have to worry about setting the correct string? 
      dateFormatter.locale = NSLocale.currentLocale() 
      let dateFromString = dateFormatter.dateFromString(dateString!) 
      print(dateFromString)/// gives nil if dateFormatter.dateFormat = "dd MMM yyyy" is commented out 
+0

日付を設定しないと何が得られますか? – Sofeda

+0

私はそれを設定しなければ私はゼロになっています。上記のように設定すると、日付が正しく取得されます。しかし、私は自動的にユーザーの設定に基づいて文字列を取得したい。 –

+0

fetch user preference date formate – Sofeda

答えて

1

次の方法で自動的に日付書式を適用できます。以下のコードはSwift 3.0にあります。

ウェイ1(カスタム日付と時刻のスタイルを使用して):

let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = DateFormatter.dateFormat(fromTemplate: "dd MMM yyyy", options: 0, locale: NSLocale.current) 
let dateString = dateFormatter.string(from: Date()) 

ウェイ2(プリセットを使用する):

let dateString = DateFormatter.localizedString(from: Date(), dateStyle: .medium, timeStyle: .none) 

詳細はこのlinkを参照してください。

関連する問題