无法将时间选择器时间添加到 swift 中的文本字段

Unable to add time picker time to textfield in swift

我已经在警报和正常操作中创建了时间选择器,我想将选定的时间添加到有关文本字段,是否可以从时间选择器中隐藏上午、下午,如果可能的话如何?我只需要显示没有 AM,PM 时间选择器的小时和分钟。请在代码中帮助我。

这是我的代码:

 func timePicker(){

    let vc = UIViewController()
    vc.preferredContentSize = CGSize(width: 200,height: 200)
    let timePicker = UIDatePicker(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
    let dateFormatter = DateFormatter()
    //dateFormatter.dateFormat = "HH:mm"
    timePicker.datePickerMode = .time

    vc.view.addSubview(timePicker)
    let addTimePickerAlert = UIAlertController(title: "", message: "", preferredStyle: UIAlertController.Style.alert)

    addTimePickerAlert.setValue(vc, forKey: "contentViewController")
    let ok = UIAlertAction(title: "OK", style: .default, handler: { (action) -> Void in

        self.hoursMinutesTextField.text = dateFormatter.string(from: timePicker.date)
        print("time textfield \(self.hoursMinutesTextField.text)")
    })
    let cancelAction = UIAlertAction(title: "Cancel", style: .default, handler: {
        (action : UIAlertAction!) -> Void in
    })
    addTimePickerAlert.addAction(ok)
    addTimePickerAlert.addAction(cancelAction)

    self.present(addTimePickerAlert, animated: true)
}

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool 
{

 self.timePicker()
    return true
}

请帮我写代码

在选择器设置中将区域设置更改为始终采用 24 小时格式:

timePicker.locale = Locale(identifier: "en_GB")

您错过了将 dateFormat 设置为 dateFormatter 这就是为什么您得到 " "

在您的代码中取消对这一行的注释

dateFormatter.dateFormat = "hh:mm" // 04:57

dateFormatter.dateFormat = "HH:mm" // 16:57

输出: