如何将当前日期保存到CoreData?

时间:2017-02-01 11:16:57

标签: swift date core-data

我在CoreData中有一个接受日期值的属性。我只是想获得当前日期并以这种格式保存它" dd / mm / yyyy" 。但不知道如何。感谢

3 个答案:

答案 0 :(得分:4)

您可以在此处将日期存储在coreData中,如格式

所示
let date = NSDate()
var dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy"
var dateString = dateFormatter.string(from: date as Date)
  

在coreData中存储 dateString

答案 1 :(得分:2)

如果您将其存储为日期,那么在尝试在某处显示返回的值之前,您无法控制格式,而只是存储Date()

如果你正如图所示存储它,那么你需要使用DateFormatter来创建你需要的字符串

答案 2 :(得分:0)

要在Core Data中保存日期,我创建了以下扩展名

 extension Date {
     /**
      Formats a Date

      - parameters format: (String) for eg dd-MM-yyyy hh-mm-ss
      */
     func format(format:String = "dd-MM-yyyy hh-mm-ss") -> Date {
         let dateFormatter = DateFormatter()
         dateFormatter.dateFormat = format
         let dateString = dateFormatter.string(from: self)
         if let newDate = dateFormatter.date(from: dateString) {
             return newDate
         } else {
             return self
         }
     }
 }

设置字段的日期值

 let date = Date()
 entity?.setValue(date.format(), forKey: "updated_at")

注意:打开数据库时,您可能会看到保存为时间戳的日期。请参阅以下问题NSDate being saved as timestamp in CoreData

您还可以在“format()”扩展名中传递自己的日期格式,以便在应用程序中获取不同类型的日期