如何在swift 3.0中将日期选择器值转换为String?

时间:2017-02-08 10:50:28

标签: date datepicker swift3 xcode8 nsdateformatter

如何在Swift 3.0中将日期选择器值转换为String类型?

现在我已设法创建日期选择器,但文本字段中显示的值是今天的日期, 2/8/17,m / d / yy 格式。

我的目标是将 m / d / yy 转换为字符串,日期值将为 2017-02-08,yyyy / mm / dd < / strong>格式

代码如下。

Date.swift

import UIKit

class ViewController: UIViewController {

    @IBOutlet var dateTxt: UITextField!

    let datepicker = UIDatePicker()

    override func viewDidLoad() {
        super.viewDidLoad()
        displayDate()
    }

    func displayDate(){
        let toolbar = UIToolbar()
        toolbar.sizeToFit()

        let doneBtn = UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: #selector(donePick))
        toolbar.setItems([doneBtn], animated: false)

        dateTxt.inputAccessoryView = toolbar

        dateTxt.inputView = datepicker
    }

    func donePick(){

        let dateFormatter = DateFormatter()
        dateFormatter.dateStyle = .short
        dateFormatter.timeStyle = .none

        dateTxt.text = dateFormatter.string(from: datepicker.date)
        self.view.endEditing(true)
    }
}

有人可以帮忙吗?

感谢。

1 个答案:

答案 0 :(得分:3)

为此,您需要设置DateFormatter的{​​{3}}属性,而不是dateStyletimeStyle

func donePick(){

    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd"
    dateTxt.text = dateFormatter.string(from: datepicker.date)
    self.view.endEditing(true)
}