Ios swift中的核心数据匹配日期
我正在使用Ios swift中的核心数据匹配日期,ios,swift,core-data,Ios,Swift,Core Data,我正在使用UITextField日期选择器将日期保存在核心数据中 在日期选择器发送器上,我以以下格式获得了日期:2017-04-02 14:56:41 我想将其转换为此格式2017年4月2日 我怎么做?下面是我的代码: var scheduledPickDate: NSDate! @IBAction func scheduleDateTextFieldBeginEditing(_ sender: UITextField) { let datePi
UITextField
日期选择器将日期保存在核心数据中
在日期选择器发送器上,我以以下格式获得了日期:2017-04-02 14:56:41
我想将其转换为此格式2017年4月2日
我怎么做?下面是我的代码:
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
如何将varscheduledPickDate
转换为此格式2017年4月2日
?您已经在使用以下格式设置日期:
dateFormatter.string(from: sender.date)
您不能以您想要的格式在Coredata中存储日期(除非您使用字符串作为属性)。如果您需要检索该日期并将其显示给用户,则需要在核心数据中再次格式化该日期,您应该将您的scheduledDate
存储为NSDate
类型实体。
检索该日期时,可以使用dateFormatter
。但是,我建议使用.longStyle作为日期格式,而不是“dd-MMMM-yyyy”。本地化更好。ScheduledDataTechChanged
中的代码似乎满足了您的需要。你有什么问题?另外请注意,您应该只设置dateFormat
或两个xxxStyle
,而不是两者都设置。因此,您的答案建议我只能将日期存储在核心数据中,如2017-04-02 14:56:41格式。但问题是在获取时,我会将其与当前日期文本字段相匹配。我当前的日期格式类似于2017年4月2日。如何在谓词上比较两者?让predicate=NSPredicate(格式:“(dateSchedule>=%@)”,fromTextField.text!)@Imran您能发布一个新问题并将链接粘贴到这里吗?我会尽快回答