DatePicker - 如何用三个字符而不是数字显示日期月份名称

DatePicker - How to display date Month name in three characters instead of number

这是我第一次尝试 Swift 或 iPhone 应用程序,所以不用说,我现在不确定如何做很多事情。

我想在我的文本字段中显示这样的日期

02 Feb 2016

但是现在显示是这样的

 2/7/16

这是我的代码

@IBAction func dateTextFieldBeginEditing(sender: UITextField) {


       // let datePickerView:UIDatePicker = UIDatePicker()

        datePickerView.datePickerMode = UIDatePickerMode.Date

        sender.inputView = datePickerView

        datePickerView.addTarget(self, action: Selector("datePickerValueChanged:"), forControlEvents: UIControlEvents.ValueChanged)

    }

    func datePickerValueChanged(sender:UIDatePicker) {


        let dateFormatter = NSDateFormatter()

        dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle


        dateFormatter.timeStyle = NSDateFormatterStyle.NoStyle

        departureDateTextField.text = dateFormatter.stringFromDate(sender.date)

    }

像这样设置日期格式!!这将为您提供类似 2016 年 2 月 2 日 的日期。 同时从您的代码中删除 dateStyletimeStyle 属性。

let dateFormatter = NSDateFormatter()

dateFormatter.dateFormat = "dd MMM yyyy"

dateFormatter.stringFromDate(NSDate())

这给我的输出是 2016 年 2 月 9 日

func datePickerValueChanged(sender:UIDatePicker) {

        let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "dd MMM yyyy"
        let dateString = dateFormatter.stringFromDate(sender.date)
        departureDateTextField.text = dateString

    }
let timestamp = NSDateFormatter.localizedStringFromDate(NSDate(), dateStyle: .MediumStyle, timeStyle: .NoStyle)
print(timestamp)

1) 添加 NSDate 的扩展

extension NSDate {
    func dateStringWithFormat(format: String) -> String {
        let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = format
        return dateFormatter.stringFromDate(self)
    }
}

2) 制作两个public变量

var datePicker:UIDatePicker?
let formatter = NSDateFormatter()

3) 添加到 UIDatePicker

let dateString = NSDate().dateStringWithFormat("yyyy-MM-dd")
print("Today's Date: "+dateString)
datePicker?.date = formatter.dateFromString(dateString)!
 func datePicker(sender:UIDatePicker) {

    let dateFormatter = NSDateFormatter()

    dateFormatter.dateFormat = "dd MMM yyyy"

    //// dd MMM yyyy == 02 Feb 2016

    let dateData = dateFormatter.stringFromDate(sender.date)

    departureDateTextField.text = dateData

}
override func viewDidLoad()
{
    super.viewDidLoad()

    self.datePicker.backgroundColor = .white
    self.datePicker.datePickerMode = .date
    let loc = Locale.init(identifier: "pt-BR")
    var calendar = Calendar.current
    calendar.locale = loc
    self.datePicker.calendar = calendar
    self.datePicker.locale = loc

    self.datePicker.addTarget(self, action: #selector(ViewController.handleDatePicker), for: UIControl.Event.valueChanged)
}

@objc func handleDatePicker()
{
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "dd-MMM-yyyy"
    let loc = Locale.init(identifier: "pt-BR")
    dateFormatter.locale = loc
    print(dateFormatter.string(from: self.datePicker.date))
 }