如何仅在 iOS 而不是时间中获取日期

how to get the date only in iOS not time

我想获取 iOS 中的唯一日期,而不是时间 我的代码是

extension Date{
   var DateInDate: Date{
      let formatter = DateFormatter()
      formatter.setLocalizedDateFormatFromTemplate("yyyy-MM-dd")
      formatter.locale = Locale(identifier: "en_IN")
      let dateInString = formatter.string(from: self)
      return formatter.date(from: dateInString)!
   }
}

如果我按照上述格式进行操作,我得到的答案是 "Apr 3, 2019 at 12: 00 AM"

我的其他密码是

extension Date{
   var DateInDate: String{
      let formatter = DateFormatter()
      formatter.dateStyle = .short
      formatter.timeStyle = .none
      formatter.setLocalizedDateFormatFromTemplate("yyyy-MM-dd")
      formatter.locale = Locale(identifier: "en_IN")
      let dateInString = formatter.string(from: self)
  }
}

但是通过这种方式,我得到的是字符串格式而不是日期格式

我想要日期格式的答案

您应该改用 DateComponents。日期总是有时间。

如评论中所述,没有时间部分的 Date 实例是不可能的。

Date而言,永恒的日期是午夜,一天的开始

Calendar中有一个便利API:

let startOfDay = Calendar.current.startOfDay(for: Date())

试试这个:

 let date = Date()
 let dateFormatter = DateFormatter()
 dateFormatter.timeStyle = DateFormatter.Style.none
 dateFormatter.dateStyle = DateFormatter.Style.short
 dateFormatter.string(from: date)