所以我正在创建一个联系电话簿应用,我正在尝试让键盘显示为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)
}
当我运行应用程序时,它会选择日期,但它也会在文本字段中显示时间。
答案 0 :(得分:0)
您没有使用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)
答案 1 :(得分:-1)
在这里你可以使用格式化程序,你没有显示你使用的任何日期格式化程序
//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