我从其他线程中得到了一个代码片段,但我想知道是否有人可以帮助我转换此函数,以便它以如下格式打印出日期:“dd-MM-yyyy”。目前它只打印一天。

func getLast7Dates()
{
  let cal = Calendar.current
  var date = cal.startOfDay(for: Date())
  var days = [Int]()

  for i in 1 ... 7 {
    let day = cal.component(.day, from: date)
    days.append(day)
    date = cal.date(byAdding: .day, value: -1, to: date)!
  }

print(days)
}

我知道我需要使用:
let dateFormatter = DateFormatter()

dateFormatter.dateFormat = "dd-MM-yyyy"

但我不知道该把它放在函数中的哪个位置,因为这是我第一次处理日期。
谢谢你的帮助:)

最佳答案

在函数中设置一次格式化程序,并按如下方式使用它(不要进行太多其他小更改):

func getLast7Dates()
{
    let cal = Calendar.current
    let date = cal.startOfDay(for: Date())
    var days = [String]()
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "dd-MM-yyyy"

    for i in 1 ... 7 {
        let newdate = cal.date(byAdding: .day, value: -i, to: date)!
        let str = dateFormatter.string(from: newdate)
        days.append(str)
    }

    print(days)
}

关于swift - Swift 3函数以格式化字符串的形式显示最近7天,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40579707/

10-12 03:38