【问题标题】:DateFormatter Swift 3DateFormatter Swift 3
【发布时间】:2017-11-21 01:58:24
【问题描述】:

所以我正在创建一个联系人电话簿应用程序,并试图让键盘显示为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)
}

当我运行应用程序时,它会选择日期,但它也会在文本字段中显示时间。

【问题讨论】:

  • 同时设置timeStyle

标签: swift datetime datepicker formatting


【解决方案1】:

您没有使用您的DateFormatterdatetxt.text = "\(datepicker.date)" 只是将text 设置为日期选择器的日期(包括日期和时间)的description。但是您根本没有使用格式化程序。

顺便说一句,我不会使用Date 作为日期格式化程序的名称。通常使用formatterdateFormatterDate 只会与同名的 Swift 类型混淆。

因此,您可能会这样做:

let formatter = DateFormatter()
formatter.dateStyle = .short
datetxt.text = formatter.string(from: datepicker.date)

【讨论】:

    【解决方案2】:

    在这里你可以使用你没有显示任何你用过的日期格式化器的格式化器

            //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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-11
      • 1970-01-01
      • 2021-02-05
      • 1970-01-01
      • 2018-07-15
      • 1970-01-01
      • 2017-10-26
      • 2017-08-03
      相关资源
      最近更新 更多