TextFieldでDatePickerを使う

コード

    @IBOutlet weak var Appreciation: UITextField!

    let datePicker = UIDatePicker()

    override func viewDidLoad() {
        super.viewDidLoad()

        createDatePicker()
    }

   func createDatePicker(){
        
        // DatePickerModeをDate(日付)に設定
        datePicker.datePickerMode = .date

        // DatePickerを日本語化
        datePicker.locale = NSLocale(localeIdentifier: "ja_JP") as Locale

        // textFieldのinputViewにdatepickerを設定
        Appreciation.inputView = datePicker
        
        // UIToolbarを設定
        let toolbar = UIToolbar()
        toolbar.sizeToFit()
        
        // Doneボタンを設定(押下時doneClickedが起動)
        let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: #selector(doneClicked))
        
        // Doneボタンを追加
        toolbar.setItems([doneButton], animated: true)
        
        // FieldにToolbarを追加
        Appreciation.inputAccessoryView = toolbar
    }
    
    @objc func doneClicked(){
        let dateFormatter = DateFormatter()

        // 持ってくるデータのフォーマットを設定
        dateFormatter.dateStyle = .medium
        dateFormatter.timeStyle = .none
        dateFormatter.locale    = NSLocale(localeIdentifier: "ja_JP") as Locale!
        dateFormatter.dateStyle = DateFormatter.Style.medium

        // textFieldに選択した日付を代入
        Appreciation.text = dateFormatter.string(from: datePicker.date)
  
        // キーボードを閉じる
        self.view.endEditing(true)
    }

UIDatePickerMode

UIDatePickerでModeを設定することで”DatePickerの”フォーマットを設定できる模様。
取得してくるデータのフォーマットはdateFormatterの各プロパティで設定できる。

プロパティ一覧
// 時間
UIDatePickerMode.time
// 日付
UIDatePickerMode.date
// 日付と時間
UIDatePickerMode.dateAndTime
// タイマー
UIDatePickerMode.countDownTimer