【问题标题】:How to convert date picker value into String in swift 3.0?如何在 swift 3.0 中将日期选择器值转换为字符串?
【发布时间】:2017-02-08 10:50:28
【问题描述】:

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

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

我的目标是将 m/d/yy 转换为 String 并且日期值将是 2017-02-08, yyyy/mm/dd 格式

代码如下。

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)
    }
}

谁能帮忙?

谢谢。

【问题讨论】:

    标签: date datepicker swift3 xcode8 nsdateformatter


    【解决方案1】:

    为此,您需要设置DateFormatterdateFormat 属性,而不是dateStyletimeStyle

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

    【讨论】:

    • 它是否自动存储为字符串?我的意思是日期“yyyy-MM-dd”值
    • 因为我想将值作为字符串类型发布到 Web 服务器中。
    • @Jamilah 您想要格式为“2017-02-08”的日期,因此您需要使用DateFormatter 设置其相应的dateFormat,在您的情况下它是yyyy-MM-dd,试试我的答案会起作用以你想要的方式。
    猜你喜欢
    • 1970-01-01
    • 2015-07-21
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    • 2018-05-20
    相关资源
    最近更新 更多