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 日 的日期。
同时从您的代码中删除 dateStyle 和 timeStyle 属性。
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))
}
这是我第一次尝试 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 日 的日期。 同时从您的代码中删除 dateStyle 和 timeStyle 属性。
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))
}