hellosheikh
hellosheikh

Reputation: 3015

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

This is my first ever attempt at Swift or an iPhone app, so needless to say I'm not sure how to do many things at this point.

I want to show the date like this in my textfield

02 Feb 2016

But right now it displays like this

 2/7/16

here is my code

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

    }

Upvotes: 1

Views: 4231

Answers (6)

Uma Madhavi
Uma Madhavi

Reputation: 4917

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

Upvotes: 0

Kops
Kops

Reputation: 197

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

Upvotes: -1

Anurag Mishra
Anurag Mishra

Reputation: 109

 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

}

Upvotes: 0

Alvin George
Alvin George

Reputation: 14296

1) Add an Extension of NSDate

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

2) Make two public variables

var datePicker:UIDatePicker?
let formatter = NSDateFormatter()

3) Add to UIDatePicker

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

Upvotes: 0

rushisangani
rushisangani

Reputation: 3385

Set date format like this!! This will give you date like 02 Feb 2016. Also remove dateStyle and timeStyle property from your code.

let dateFormatter = NSDateFormatter()

dateFormatter.dateFormat = "dd MMM yyyy"

dateFormatter.stringFromDate(NSDate())

This gives me output as 09 FEB 2016

Upvotes: 4

Hamza Ansari
Hamza Ansari

Reputation: 3084

func datePickerValueChanged(sender:UIDatePicker) {

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

    }

Upvotes: 0

Related Questions