2017-11-21 8 views
0

私は連絡先の電話帳アプリケーションを作成しており、キーボードをDateTimePickerとして表示しようとしています。DateFormatter Swift 3

私はしばらくしてからキーボードを動作させましたが、フォーマッタが正常に動作しないようです。

@IBOutlet weak var datetxt: UITextField! 

var datepicker = UIDatePicker() 


func createdatepicker() { 
    datepicker.datePickerMode = .date 

    let toolbar = UIToolbar() 
    toolbar.sizeToFit() 

    let donebutton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneac)) 
    toolbar.setItems([donebutton], animated: true) 
    datetxt.inputAccessoryView = toolbar 

    datetxt.inputView = datepicker 

} 

func doneac() { 
    let Date = DateFormatter() 
    Date.dateStyle = .short 
    //Date.string(from: String) 
    datetxt.text = "\(datepicker.date)" 
    self.view.endEditing(true) 
} 

アプリを実行すると、日付が選択されますが、テキストフィールドにも時刻が表示されます。

+0

を使用する任意の日付フォーマッタを示していなかったフォーマッタを使用することができます。 – rmaddy

答えて

0

あなたはDateFormatterを使用していません。 datetxt.text = "\(datepicker.date)"は、textを日付ピッカーの日付(日付と時刻を含む)のdescriptionに設定するだけです。しかし、あなたはフォーマッタをまったく使用していません。

そして、私はDateを日付フォーマッタの名前として使用しません。一般的には、formatterまたはdateFormatterを使用します。 Dateは、同じ名前のスイフトタイプの混乱を招くだけです。

したがって、あなたが行う可能性があります。ここに

let formatter = DateFormatter() 
formatter.dateStyle = .short 
datetxt.text = formatter.string(from: datepicker.date) 
-1

をあなたはあなたにも `timeStyle`を設定

 //here is current date 
     let date = Date() 

     //formatter to return value as 21-11-2017 
     let formatter = DateFormatter() 
     formatter.dateFormat = "dd-MM-yyyy" 

     //Date Output 
     let result = formatter.string(from: date) 

     //second formatter to return time format like 2:31 Am 
     let formatter1 = DateFormatter() 
     formatter1.dateFormat = "h:mm a" 

     //Time Output 
     let result1 = formatter1.string(from: date) 

     //set values for example using label for reference 
     DateLabel.text = result 
     TimeLabel.text = result1 

     //actual output is as Follows: 
     DateLabel = 21-11-2107 
     TimeLabel = 9:54 AM