Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios swift中的核心数据匹配日期_Ios_Swift_Core Data - Fatal编程技术网

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

如何将var
scheduledPickDate
转换为此格式
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您能发布一个新问题并将链接粘贴到这里吗?我会尽快回答