因此,我正在创建一个联系人电话簿应用程序,我试图让键盘显示为一个DateTimePicker。
过了一段时间,我已经让键盘开始工作了,但我似乎无法让格式化程序正常工作。
@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)
}当我运行应用程序时,它会选择日期,但它也会在文本字段中显示时间。
发布于 2017-11-21 03:44:46
你没有使用你的DateFormatter。datetxt.text = "\(datepicker.date)"只是将text设置为日期选择器的日期(包括日期和时间)的description。但你根本不用你的格式化程序。
顺便说一句,我不会使用Date作为日期格式化程序的名称。人们通常会使用formatter或dateFormatter。Date只会引起对同名Swift类型的混淆。
因此,你可以这样做:
let formatter = DateFormatter()
formatter.dateStyle = .short
datetxt.text = formatter.string(from: datepicker.date)发布于 2017-11-21 04:25:15
在这里,您可以使用尚未显示任何日期格式化程序的格式化程序。
//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 AMhttps://stackoverflow.com/questions/47404040
复制相似问题