我正在使用UITextField
日期选择器将日期保存在Core Data
中。
在日期选择器发件人处,我得到了这种格式的日期:2017-04-02 14:56:41
。
我想将其转换为此格式02 April 2017
。
我该怎么办?以下是我的代码:
var scheduledPickDate: NSDate!
@IBAction func scheduleDateTextFieldBeginEditing(_ sender: UITextField) {
let datePickerView:UIDatePicker = UIDatePicker()
datePickerView.minimumDate = NSDate() as Date
datePickerView.datePickerMode = UIDatePickerMode.date
sender.inputView = datePickerView
datePickerView.addTarget(self, action: #selector(WalkIn.ScheduledDateChanged), for: UIControlEvents.valueChanged)
}
func ScheduledDateChanged(sender:UIDatePicker){
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = DateFormatter.Style.long
dateFormatter.timeStyle = DateFormatter.Style.none
dateFormatter.dateFormat = "dd MMMM yyyy"
//print(sender.date)
scheduledPickDate = scheduledPickDate as NSDate!
//print(scheduledPickDate)
scheduledDateWalkinPatient.text = dateFormatter.string(from: sender.date)
}
// on save function
managedObj.setValue(scheduledPickDate, forKey: "dateSchedule") // 2017-04-02 14:56:41
如何将var scheduledPickDate
转换为此格式02 April 2017
?
答案 0 :(得分:1)
您已使用以下内容格式化日期:
dateFormatter.string(from: sender.date)
您无法在Coredata中以您希望的格式存储日期(除非您使用String作为属性)。如果那时您需要检索该日期并将其显示给用户,则需要再次格式化
答案 1 :(得分:0)
在核心数据中,您应将scheduledDate
存储为NSDate
类型实体。
当您检索该日期时,您可以使用dateFormatter
。但是,我建议使用.longStyle作为dateFormat而不是" dd MMMM yyyy"。这种方式更适合本地化。